home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / fdimg / oh!.2hd / OH!DEN_B.LZH / TOOLS / CDC / CDCSRC.LZH / CDC.S < prev    next >
Text File  |  1995-03-20  |  60KB  |  2,929 lines

  1.     .include    tnb.mac
  2.     .include    iocscall.mac
  3.     .include    doscall.mac
  4.  
  5. TnLC_=8000    *今のカウント
  6.  
  7. TrkMax = 400
  8.  
  9. StartStatio:*******************常駐部
  10. SS:
  11.     jbra    init
  12. head:
  13. HEAD1 = 'CDCT'
  14. HEAD2 = 'B100'
  15.     .dc.l    HEAD1
  16.      .dc.l    HEAD2
  17.     .even
  18.  
  19.     .dc.l    'CDC_trap'
  20. st:
  21. TRP5:*=========================================
  22.     *    ($25)[$0094]
  23.     *    TRAP 5
  24.     *
  25. TRP5_ = $0094.w
  26.     jbra    tr5s
  27. tr5tabs:
  28.     .dc.l    tr5_00,tr5_01,tr5_02,tr5_03,tr5_04,tr5_05,tr5_06,tr5_07
  29.     .dc.l    tr5_08,tr5_09,tr5_0a,tr5_0b,tr5_0c,tr5_0d,tr5_0e,tr5_0f
  30.     .dc.l    tr5_10,tr5_11,tr5_12,tr5_13,tr5_14,tr5_15,tr5_16,tr5_17
  31.     .dc.l    tr5_18,tr5_19,tr5_1a,tr5_1b,tr5_1c,tr5_1d,tr5_1e,tr5_1f
  32.     .dc.l    tr5_20,tr5_21,tr5_22,tr5_23,tr5_24,tr5_25,tr5_26,tr5_27
  33.     .dc.l    tr5_28,tr5_29,tr5_2a,tr5_2b,tr5_2c,tr5_2d,tr5_2e,tr5_2f
  34.     .dc.l    tr5_30,tr5_31,tr5_32,tr5_33,tr5_34,tr5_35,tr5_36,tr5_37
  35.     .dc.l    tr5_38,tr5_39,tr5_3a,tr5_3b,tr5_3c,tr5_3d,tr5_3e,tr5_3f
  36. TRP5_JMP:
  37.     jmp    $00000000.l
  38.  
  39. PWSW:*=========================================
  40.     *    ($42)[$0108]
  41.     *    フロントスイッチ
  42.     *
  43. PWSW_ = $0108.w
  44.     jbsr    _CDCOFF
  45.     jbsr    ScsiUseChk
  46.     jbne    PWSW_JMP
  47.     movem.l    d0-d2/a0-a2,-(sp)
  48.      jbsr    _ZeroUnit
  49.     movem.l    (sp)+,d0-d2/a0-a2
  50. PWSW_JMP:
  51.     jmp    $00000000.l
  52.  
  53. MFP:*=========================================
  54.     *    ($4C)[$0130]
  55.     *    MFP  キーシリアル
  56.     *
  57. MFP_ = $0130.w
  58.     tst.w    _KeySwi
  59.     jbeq    MFP_JMP
  60.  
  61.     move.l    d7,-(sp)
  62.     move.b    $00E8802F,d7
  63.     btst    #7,d7
  64.     jbeq    @f    *押された
  65.     clr.w    _KeyPush
  66.     jbra    MP_L1
  67. @@:
  68.     move.w    #1,_KeyPush
  69.     jbsr    CmdCord
  70.     jbeq    MP_L1        CDC用キーでない
  71.  
  72.     movem.l    d0-d1,-(sp)
  73.  
  74.      move.b    $800+$0E,d0
  75.      swap    d0
  76.      move.w    $800+$0A,d0
  77.      andi.l    #$000FE003,d0
  78.      cmp.l    _SFTK(pc),d0
  79.      bne    MP_L2
  80.      tst.w    MFP_cmd
  81.      beq    MP_L4
  82.      tst.w    MFP_cmd+2
  83.      beq    @f
  84.      move.w    MFP_cmd+2(pc),MFP_cmd
  85. @@:     move.w    d7,MFP_cmd+2
  86.      bra    MP_L3
  87. MP_L4:     move.w    d7,MFP_cmd
  88. MP_L3:    movem.l    (sp)+,d0-d1
  89.     move.l    (sp)+,d7
  90.     rte
  91. MP_L2:
  92.     movem.l    (sp)+,d0-d1
  93. MP_L1:
  94.     move.l    (sp)+,d7
  95. MFP_JMP:
  96.     jmp    $00000000.l
  97.  
  98. MFP_BAK:
  99.     .dc.l    0
  100. MFP_cmd:
  101.     .dc.w    0    *コマンドキーバッファ
  102.     .dc.w    0    *コマンドキーバッファ
  103. INTVCS:    *-----------------------------
  104.     *    [$FF25]
  105.     *        設定&アドレス返し
  106. INTVCS_ = $FF25
  107.     move.l    d0,-(sp)
  108.     move.w    (a6),d0        * ベクタL
  109.     cmpi.w    #$004C,d0    *キー入力か?
  110.     jbne    @f
  111.     move.l    (sp)+,d0
  112.     move.l    MFP_JMP+2(pc),d0
  113.     move.l    2(a6),MFP_JMP+2
  114.     rts
  115. @@:    move.l    (sp)+,d0
  116. INTVCS_JMP:
  117.     jmp    0.l
  118. INTVCG:    *-----------------------------
  119.     *    [$FF35]
  120.     *        アドレス返し
  121. INTVCG_ = $FF35
  122.     move.l    d0,-(sp)
  123.     move.w    (a6),d0        * ベクタL
  124.     cmpi.w    #$004C,d0    *キー入力か?
  125.     jbne    @f
  126.     move.l    (sp)+,d0
  127.     move.l    MFP_JMP+2(pc),d0
  128.     rts
  129. @@:    move.l    (sp)+,d0
  130. INTVCG_JMP:
  131.     jmp    0.l
  132.  
  133. BITSNS:*=========================================
  134.     *    ($104)[$0410]
  135.     *    IOCS $04 BITSNS
  136.     *
  137. BITSNS_ = $0410
  138.     tst.w    IocsSwc
  139.     jbne    BITSNS_JMP
  140.     tst.w    MFP_cmd
  141.     jbne    @f
  142.     jbsr    NokeySeek
  143.     jbra    BS_EE
  144. @@:
  145.     move.w    #1,IocsSwc
  146.     movem.l    d0-d7/a0-a6,-(sp)
  147.     move.w    MFP_cmd(pc),d0
  148.     move.w    MFP_cmd+2(pc),MFP_cmd
  149.     clr.w    MFP_cmd+2
  150.     jbsr    KeySns
  151.     movem.l    (sp)+,d0-d7/a0-a6
  152. BS_EE:
  153.     jbsr    LoopChk
  154.     clr.w    IocsSwc
  155. BITSNS_JMP:
  156.     jmp    $00000000.l
  157.  
  158. B_KEYSNS:*=========================================
  159.     *    ($101)[$0404]
  160.     *    IOCS $01 B_KEYSNS
  161.     *
  162. B_KEYSNS_ = $0404
  163.     jbsr    B_KEYSNS_JMP
  164.     tst.w    IocsSwc
  165.     jbeq    @f
  166.     rts
  167. @@:
  168.     move.w    #1,IocsSwc
  169.     tst.w    MFP_cmd
  170.     jbne    @f
  171.     jbsr    NokeySeek
  172.     jbra    BKS_L3
  173. @@:
  174.     movem.l    d0-d7/a0-a6,-(sp)
  175.      move.w    MFP_cmd(pc),d0
  176.      move.w    MFP_cmd+2(pc),MFP_cmd
  177.      clr.w    MFP_cmd+2
  178.      bsr    KeySns
  179.     movem.l    (sp)+,d0-d7/a0-a6
  180. BKS_L3:
  181.     tst.w    _KeySwi
  182.     jbeq    BKS_L2
  183.  
  184.     tst.l    d0
  185.     jbne    @f
  186.     jbsr    NokeySeek
  187.     jbra    BKS_L2        *0なら終わり
  188. @@:
  189.  
  190.     movem.l    d0-d7/a0-a6,-(sp)
  191.     move.l    d0,d7
  192.     lsr.w    #8,d7
  193.     jbsr    CmdCord
  194.     jbeq    BKS_L1        CDC用キーでない
  195.  
  196.     move.l    d0,d7
  197.      move.b    $800+$0E,d0
  198.      swap    d0
  199.      move.w    $800+$0A,d0
  200.      andi.l    #$000FE003,d0
  201.      cmp.l    _SFTK(pc),d0
  202.      bne    BKS_L1
  203.  
  204.     move.l    d7,d0
  205.     lsr.w    #8,d0
  206.     jbsr    KeySns
  207.     jbne    BKS_L1
  208.             *あった (=キーパッファに入れない)
  209.     jbsr    B_KEYSNS_JMP    *念のため呼ぶ(file関係の時にキーパッファーが使われる?)
  210.     tst.l    d0
  211.     jbeq    BKS_L4
  212.     IOCS    _B_KEYINP
  213. BKS_L4:    movem.l    (sp)+,d0-d7/a0-a6
  214.     clr.w    IocsSwc
  215.     moveq    #0,d0
  216.     rts
  217. BKS_L1:
  218.     movem.l    (sp)+,d0-d7/a0-a6
  219. BKS_L2:
  220.     jbsr    LoopChk
  221.     clr.w    IocsSwc
  222.     rts
  223.  
  224. B_KEYSNS_JMP:
  225.     jmp    $00000000.l
  226.  
  227.  
  228. KeySnsEM:
  229.     .dc.w    0    *0:KEY 1:TRAP
  230. KeySns:*=========================================
  231.     *
  232.     *    d0=キーボードコード
  233.     *
  234.     *[戻り値]    beq : 何かあった (=キーパッファに入れない)
  235.     *        bne : 何もなし
  236.     *
  237.     move.b    d0,d7
  238.     andi.l    #$007F,d7
  239.     jbeq    EE
  240.     lea    KST(pc),a0
  241.     add.w    d7,d7
  242.     adda.w    (a0,d7.w),a0
  243.     jmp    (a0)
  244.  
  245. EE:    moveq    #1,d0
  246.     rts
  247.  
  248. Kt:    .macro    A,B,C,D
  249.     .dc.w    A-KST,B-KST,C-KST,D-KST
  250.     .endm
  251. KST:
  252.     Kt    EE,Tesc,EE,EE            *│未定義│  ESC │  1!  │  2"  
  253.     Kt    EE,EE,EE,EE            *│  3#  │  4$  │  5%  │  6&  
  254.     Kt    Tsuz7,Tsuz8,Tsuz9,Trnd        *│  7'  │  8(  │  9)  │  0   
  255.     Kt    Tauto,EE,EE,Tbs            *│  -=  │  ^~  │  \|  │  BS  
  256.     Kt    Ttab,EE,EE,Te            *│  TAB │  Q  │  W  │  E  
  257.     Kt    Tr,EE,EE,Tsuz4            *│  R  │  T  │  Y  │  U  
  258.     Kt    Tsuz5,Tsuz6,Trew_,EE        *│  I  │  O  │  P  │  @`  
  259.     Kt    Trvtm,Tenter,EE,EE        *│  [   │ [CR] │  A  │  S  
  260.     Kt    EE,EE,EE,EE            *│  D  │  F  │  G  │  H  
  261.     Kt    Tsuz1,Tsuz2,Tsuz3,Tff_        *│  J  │  K  │  L  │  ;+  
  262.     Kt    EE,Ttm,EE,EE            *│  :*  │   ]  │  Z  │  X  
  263.     Kt    EE,EE,EE,EE            *│  C  │  V  │  B  │  N  
  264.     Kt    Tsuz0,Tmemview,Tmem,Tequ    *│  M  │  ,<  │  .>  │  /?  
  265.     Kt    Tenter,EE,Thome,Tdel        *│   _  │ [SP] │ HOME │  DEL 
  266.     Kt    Trew,Tff,Tundo,TledL        *│Rollup│Rolldn│ UNDO │  ←  
  267.     Kt    TledU,TledR,TledD,Tclr        *│  ↑  │  →  │  ↓  │  CLR 
  268.     Kt    Trnd,Tauto,Trew_,Tsuz7        *│  /  │  *  │  -  │  7  
  269.     Kt    Tsuz8,Tsuz9,Tff_,Tsuz4        *│  8  │  9  │  +  │  4  
  270.     Kt    Tsuz5,Tsuz6,Tequ,Tsuz1        *│  5  │  6  │  =  │  1  
  271.     Kt    Tsuz2,Tsuz3,Tenter,Tsuz0    *│  2  │  3  │ ENTER│  0  
  272.     Kt    Tmemview,Tmem,Tkigou,Ttouroku    *│  ,  │  .  │ 記号 │ 登録 
  273.     Kt    EE,EE,EE,EE            *│ HELP │  XF1 │  XF2 │  XF3 
  274.     Kt    EE,EE,EE,EE            *│  XF4 │  XF5 │ かな │ ローマ字
  275.     Kt    EE,EE,EE,EE            *│コード│ CAPS │  INS │ ヒカナ 
  276.     Kt    EE,EE,EE,EE            *│ 全角 │ BREAK│ COPY │ F1 
  277.     Kt    EE,EE,EE,EE            *│ F2 │ F3 │ F4 │ F5 
  278.     Kt    EE,EE,EE,EE            *│ F6 │ F7 │ F8 │ F9 
  279.     Kt    EE,EE,EE,EE            *│ F10 │未定義│未定義│未定義
  280.     Kt    EE,EE,EE,EE            *│ SHIFT│ CTRL │ OPT.1│ OPT.2
  281.     Kt    EE,EE,EE,EE            *│未定義│未定義│未定義│未定義
  282.     Kt    EE,EE,EE,EE            *│未定義│未定義│未定義│未定義
  283.     Kt    EE,EE,EE,EE            *│未定義│未定義│未定義│未定義
  284.  
  285. CmdCord:***********************
  286.     *
  287.     *in    d7=キーデータ
  288.     *out    d7=キーデータ    0ならCDC用でない
  289.     *    beq ならCDC用でない
  290.     *
  291.     movem.l    d0/a0,-(sp)
  292.     moveq    #0,d0
  293.     move.b    d7,d0
  294.     lsr.w    #3,d0            * /8
  295.     lea    CmdC_List(pc),a0
  296.     btst.b    d7,(a0,d0.w)
  297.     jbne    CmdC_L1
  298.     movem.l    (sp)+,d0/a0
  299.     moveq.l    #0,d7
  300.     rts
  301. CmdC_L1:
  302.     movem.l    (sp)+,d0/a0
  303.     andi.l    #$00FF,d7
  304.     rts
  305.  
  306. defccl:    .macro
  307.     .dc.b    %0000_0010 **│  6&  │  5%  │  4$  │  3#  │  2"  │  1!  │  ESC │未定義
  308.     .dc.b    %1000_0000 **│  BS  │  \|  │  ^~  │  -=  │  0   │  9)  │  8(  │  7'  
  309.     .dc.b    %0001_1001 **│  U  │  Y  │  T  │  R  │  E  │  W  │  Q  │  TAB 
  310.     .dc.b    %0001_0000 **│  S  │  A  │ [CR] │  [   │  @`  │  P  │  O  │  I  
  311.     .dc.b    %0000_0000 **│  ;+  │  L  │  K  │  J  │  H  │  G  │  F  │  D  
  312.     .dc.b    %0000_0010 **│  N  │  B  │  V  │  C  │  X  │  Z  │   ]  │  :*  
  313.     .dc.b    %1100_0000 **│  DEL │ HOME │ [SP] │   _  │  /?  │  .>  │  ,<  │  M  
  314.     .dc.b    %1111_1111 **│  CLR │  ↓  │  →  │  ↑  │  ←  │ UNDO │Rolldn│Rollup
  315.     .dc.b    %1111_1111 **│  4  │  +  │  9  │  8  │  7  │  -  │  *  │  /  
  316.     .dc.b    %1111_1111 **│  0  │ ENTER│  3  │  2  │  1  │  =  │  6  │  5  
  317.     .dc.b    %0000_1011 **│  XF3 │  XF2 │  XF1 │ HELP │ 登録 │ 記号 │  .  │  ,  
  318.     .dc.b    %0000_0000 **│ ヒカナ │  INS │ CAPS │コード│ ローマ字│ かな │  XF5 │  XF4 
  319.     .dc.b    %0000_0000 **│ F5 │ F4 │ F3 │ F2 │ F1 │ COPY │ BREAK│ 全角 
  320.     .dc.b    %0000_0000 **│未定義│未定義│未定義│ F10 │ F9 │ F8 │ F7 │ F6 
  321.     .dc.b    %0000_0000 **│未定義│未定義│未定義│未定義│ OPT.2│ OPT.1│ CTRL │ SHIFT
  322.     .dc.b    %0000_0000 **│未定義│未定義│未定義│未定義│未定義│未定義│未定義│未定義
  323.     .endm
  324.  
  325.     ******************* SEEKチェック
  326. NokeySeek:
  327.     tst.l    _SeekNow
  328.     jbpl    @f
  329.     rts
  330. @@:    tst.w    _KeyPush
  331.     jbeq    @f
  332.     rts
  333. @@:    move.w    d0,-(sp)
  334.     move.b    $800+8,d0
  335.     andi.b    #$44,d0
  336.     movem.w    (sp)+,d0
  337.     jbeq    @f
  338.     rts
  339. @@:
  340. NokeySeek2:        *trap#5用name
  341.     move.l    d0,-(sp)
  342.     move.w    KeySnsEM(pc),d0        *0;KEY 1;Trap で使用
  343.     cmp.w    _SeekNowMd(pc),d0
  344.     jbne    MNkS_L1
  345.  
  346.     movem.l    d1-d7/a0-a6,-(sp)
  347.     move.w    #1,IocsSwc
  348.     moveq    #0,d0
  349.     move.w    _SeekNowTk(pc),d0
  350.     tst.w    _RndMode
  351.     jbne    @f
  352.     tst.w    _ReptMode
  353.     jbne    @f
  354.     tst.w    _MemLong
  355.     jbne    @f
  356.     moveq    #-1,d0
  357. @@:
  358.     move.l    d0,-(sp)
  359.      move.w    _SeekNowTk(pc),d0
  360.      add.w    d0,d0
  361.      add.w    d0,d0
  362.      lea    _ListStTm,a0
  363.      move.l    (a0,d0.w),-(sp)
  364.      move.l    _SeekNow(pc),-(sp)
  365.      bsr    _addtime
  366.      addq.l    #8,sp
  367.     move.l    d0,-(sp)
  368.     jbsr    _CdPlay
  369.     addq.l    #8,sp
  370.     move.l    #-1,_SeekNow
  371.     clr.w    _PauseMode        *0:特に 1:ポーズ中
  372.     jbsr    _MemChkT
  373.     jbsr    _B_KLE_D
  374.  
  375.     clr.w    IocsSwc
  376.     movem.l    (sp)+,d1-d7/a0-a6
  377.     clr.w    _TsekSw        *連続シーク値
  378. MNkS_L1:
  379.     move.l    (sp)+,d0
  380.     rts
  381.  
  382.  
  383. _CdcModeOn::    *1:運転中
  384.     tst.w    _CdcMode    *1:運転中
  385.     jbeq    @f
  386.     rts
  387. @@:    move.w    #-1,_CdcMode    *1:運転中
  388.     move.w    #1,_CDIN
  389.     rts
  390.  
  391.     ******************移動関係
  392. TledL:
  393.     jbsr    _CdcModeOn
  394.     move.l    #-1,TledMS
  395.     move.l    _DRAWADDS(pc),d0
  396.     andi.w    #$7F,d0
  397.     jbne    @f
  398.     moveq    #0,d0
  399.     rts
  400. @@:
  401. TledMove:
  402.     jbsr    FnkBerChk
  403.     jbeq    @f
  404.     jbsr    KillLeds
  405.     move.l    TledMS,d0
  406.     add.l    d0,_DRAWADDS
  407.     jbsr    DrawLeds
  408. @@:    moveq    #0,d0
  409.     rts
  410. TledMS:
  411.     .dc.l    0
  412.  
  413. TledR:
  414.     jbsr    _CdcModeOn
  415.     move.l    #1,TledMS
  416.     move.l    _DRAWADDS(pc),d0
  417.     andi.w    #$7F,d0
  418.     cmpi.w    #128-(36+1+10),d0
  419.     jbcs    TledMove
  420.     moveq    #0,d0
  421.     rts
  422. TledU:
  423.     jbsr    _CdcModeOn
  424.     move.l    #-$800,TledMS
  425.     move.l    _DRAWADDS(pc),d0
  426.     andi.l    #$1F800,d0
  427.     jbne    TledMove
  428.     moveq    #0,d0
  429.     rts
  430. TledD:
  431.     jbsr    _CdcModeOn
  432.     move.l    #$800,TledMS
  433.     move.l    _DRAWADDS(pc),d0
  434.     andi.l    #$1F800,d0
  435.     cmpi.l    #$800*63,d0
  436.     jbcs    TledMove
  437.     moveq    #0,d0
  438.     rts
  439.  
  440.  
  441. Ttab:**********[TAB]
  442.     jbsr    _CdcModeOn
  443.     not.w    _DisForce
  444.     moveq    #0,d0
  445.     rts
  446.  
  447. Ttouroku:**********[登録]
  448.     jbsr    _CdcModeOn
  449.     jbsr    _ChkCdRom
  450.     jbsr    _CdListRead
  451.     jbsr    _MemChkT
  452.     jbra    _B_KLE_D
  453.  
  454. Tenter:******[ENTER]
  455.     jbsr    _CdcModeOn
  456.     jbsr    _ChkCdRom
  457.     clr.w    _PauseMode    *0:特に 1:ポーズ中
  458.     clr.w    _ReptMode    *0:ノーマル 1:リピート
  459.     clr.w    _BgmMode    *0:ノーマル 1:BGM
  460.     jbsr    Tent_sub
  461.     jbra    _B_KLE_D
  462.  
  463. Tent_sub:
  464.     tst.w    _CDIN
  465.     jbne    @f
  466.     rts
  467. @@:    move.w    _MemLong,d0
  468.     jbeq    Tes_J1
  469.         *めもりー
  470.     move.w    #-1,_MemMode
  471.     clr.w    _MemPt
  472.     jbsr    _DisSuuziCalc
  473.     move.l    d0,d7
  474.     jbeq    Tes_J2
  475.     move.l    _CdTrak(pc),d0
  476.     cmp.l    d0,d7
  477.     jbhi    Tes_J2        *d1<=d0max
  478.     move.l    d7,-(sp)
  479.     move.l    d7,-(sp)
  480.     jbsr    _CdPlay
  481.     addq.l    #8,sp
  482.     move.l    d0,-(sp)
  483.     jbsr    _MemChkT
  484.     move.l    (sp)+,d0
  485.     rts
  486. Tes_J2:
  487.     moveq    #0,d0
  488.     move.b    _MemSock(pc),d0    *メモリの1つめを再生
  489.     move.l    d0,-(sp)
  490.     move.l    d0,-(sp)
  491.     jbsr    _CdPlay
  492.     addq.l    #8,sp
  493.     rts
  494.  
  495. Tes_J1:
  496.     jbsr    _DisSuuziCalc
  497.     move.l    d0,d7
  498.     jbeq    Tes_L1
  499.     move.l    _CdTrak(pc),d0
  500. @@:    cmp.l    d0,d7
  501.     jbhi    Tes_L1        *d1<=d0max
  502.  
  503. @@:    move.l    #-1,-(sp)
  504.     move.l    d7,-(sp)
  505.     jbsr    _CdPlay
  506.     addq.l    #8,sp
  507.     rts
  508.  
  509. Tes_L1:    jbsr    _CdPlay_all
  510.     rts
  511.  
  512. Tequ:******* [=]
  513.     *    ストップ
  514.     jbsr    _CdcModeOn
  515.     jbsr    _ChkCdRom
  516.     tst.w    _TrkNo
  517.     jbne    @f
  518.     jbra    _B_KLE_D
  519.  
  520. @@:
  521.     tst.w    _CDIN
  522.     jbeq    _B_KLE_D    *err end
  523.     move.l    _plyinf,d0
  524.     cmpi.b    #$11,d0
  525.     jbne    Tcont
  526.         *stop
  527.     jbsr    _StpDsk
  528.     move.w    #-1,_PauseMode        *0:特に 1:ポーズ中
  529.     jbra    _B_KLE_D
  530. Tcont:        *cont
  531.     jbsr    _Resume
  532.     clr.w    _PauseMode        *0:特に 1:ポーズ中
  533.     jbra    _B_KLE_D
  534.  
  535.  
  536. Tclr:********* [CLR]
  537.     jbsr    _CdcModeOn
  538.     jbsr    _ChkCdRom
  539.     jbsr    _ZeroUnit
  540.     clr.w    _AutoMode        *0:ノーマル 1:オート
  541.     clr.w    _RndMode        *0:ノーマル 1:ランダム
  542.     jbsr    _FlgClrS
  543.                 **
  544.     clr.l    _SetNameAdd
  545.     jbra    _B_KLE_D
  546.  
  547. _FlgClrS:
  548.     clr.w    _ReptMode        *0:ノーマル 1:リピート
  549.     clr.w    _MemMode        *0:ノーマル 1:メモリ
  550.     clr.w    _BgmMode        *0:ノーマル 1:BGM
  551.     clr.w    _PauseMode        *0:特に 1:ポーズ中
  552.     clr.w    _TrkNo
  553.     clr.w    _TrkNoS
  554.     clr.w    _DisSuuzi10        * LED用数字クリア
  555.     move.w    #-1,_MemPt
  556.     move.w    #-1,_RndPt
  557.     rts
  558.  
  559.     .globl    _FlgClr
  560. _FlgClr:
  561.     jbsr    _FlgClrS
  562.     jbsr    _B_KLE_D2
  563.     rts
  564.  
  565.     *--------------曲ステップ
  566. Trew:********* バック
  567.     jbsr    _CdcModeOn
  568.     jbsr    _ChkCdRom
  569.     clr.w    _PauseMode    *0:特に 1:ポーズ中
  570.     clr.w    _BgmMode    *0:ノーマル 1:BGM
  571.     tst.w    _CDIN
  572.     jbne    @f
  573.     moveq    #0,d0    *err
  574.     rts
  575. @@:    move.l    _plyinf+8,d0        *plyinf.time
  576.     cmpi.l    #$0000_0010,d0
  577.     jbcc    @f
  578.     move.l    #-1,-(sp)
  579.     jbsr    _CdPlay_restart
  580.     addq.l    #4,sp
  581.     movem.l    d0-d7/a0-a6,-(sp)    *ダブルクリック対策
  582.      move.w    MFP_cmd(pc),d0
  583.      move.w    MFP_cmd+2(pc),MFP_cmd
  584.      clr.w    MFP_cmd+2
  585.      bsr    KeySns
  586.     movem.l    (sp)+,d0-d7/a0-a6
  587.     jbra    _B_KLE_D
  588. @@:
  589.     move.l    #0,-(sp)
  590.     jbsr    _CdPlay_restart
  591.     addq.l    #4,sp
  592.     jbra    _B_KLE_D
  593.  
  594. Tff:********* 進む
  595.     jbsr    _CdcModeOn
  596.     jbsr    _ChkCdRom
  597.     clr.w    _PauseMode    *0:特に 1:ポーズ中
  598.     clr.w    _BgmMode    *0:ノーマル 1:BGM
  599.     move.l    #1,-(sp)
  600.     jbsr    _CdPlay_restart
  601.     addq.l    #4,sp
  602.     jbra    _B_KLE_D
  603.  
  604.     *--------------時間スキャン(未使用)
  605. *Trews:********* バック
  606. *    jbsr    _CdcModeOn
  607. *    jbsr    _ChkCdRom
  608. *    clr.w    _PauseMode    *0:特に 1:ポーズ中
  609. *    clr.w    _BgmMode    *0:ノーマル 1:BGM
  610. *    move.l    #-1,-(sp)
  611. *    jbsr    _ScanDisp
  612. *    addq.l    #4,sp
  613. *    jbra    _B_KLE_D
  614. *Tffs:********* 進む
  615. *    jbsr    _CdcModeOn
  616. *    jbsr    _ChkCdRom
  617. *    clr.w    _PauseMode    *0:特に 1:ポーズ中
  618. *    clr.w    _BgmMode    *0:ノーマル 1:BGM
  619. *    move.l    #1,-(sp)
  620. *    jbsr    _ScanDisp
  621. *    addq.l    #4,sp
  622. *    jbra    _B_KLE_D
  623.  
  624.     *--------------時間シーク
  625. Trew_:********* バック
  626.     jbsr    _CdcModeOn
  627.     jbsr    _ChkCdRom
  628.     tst.w    _CDIN
  629.     jbne    @f
  630.     rts
  631. @@:    addq.w    #1,_TsekSw
  632.     move.l    #-1,-(sp)
  633.     jbsr    _SeekDisp
  634.     addq.l    #4,sp
  635.     tst.l    d0
  636.     jbeq    _B_KLE_D
  637.     move.w    KeySnsEM(pc),_SeekNowMd        *0;KEY 1;Trap で使用
  638.     moveq    #0,d1
  639.     jbra    _B_KLE_S
  640. Tff_:********* 進む
  641.     jbsr    _CdcModeOn
  642.     jbsr    _ChkCdRom
  643.     tst.w    _CDIN
  644.     jbne    @f
  645.     rts
  646. @@:    addq.w    #1,_TsekSw
  647.     move.l    #1,-(sp)
  648.     jbsr    _SeekDisp
  649.     addq.l    #4,sp
  650.     tst.l    d0
  651.     jbeq    _B_KLE_D
  652.     move.w    KeySnsEM(pc),_SeekNowMd        *0;KEY 1;Trap で使用
  653.     moveq    #1,d1
  654.     jbra    _B_KLE_S
  655. _TsekSw:
  656.     .dc.w    0        *連続シーク値
  657.  
  658. Tundo:********* [UNDO]
  659.     jbsr    _CdcModeOn
  660.     jbsr    _ChkCdRom
  661.     jbsr    _DisSuuziCalc
  662.     move.l    d0,d7
  663.     jbeq    Tundo_1
  664.  
  665.     move.l    _CdTrak(pc),d0
  666.     cmp.l    d0,d7
  667.     jbhi    Tundo_1        *d1<=d0max
  668.     jbsr    _FlgClrS
  669.     clr.w    _AutoMode        *0:ノーマル 1:オート
  670.     clr.w    _RndMode        *0:ノーマル 1:ランダム
  671.     move.w    #-1,_ReptMode        *0:ノーマル 1:リピート
  672.     move.l    d7,-(sp)
  673.     move.l    d7,-(sp)
  674.     jbsr    _CdPlay
  675.     addq.l    #8,sp
  676.     jbsr    _MemChkT
  677.     jbra    _B_KLE_D
  678.  
  679. Tundo_1:
  680.     tst.w    _TrkNo
  681.     jbne    @f
  682.     moveq    #0,d0
  683.     rts
  684. @@:    clr.w    _AutoMode        *0:ノーマル 1:オート
  685.     clr.w    _RndMode        *0:ノーマル 1:ランダム
  686.     move.w    #-1,_RndPt
  687.     clr.w    _MemMode        *0:ノーマル 1:メモリ
  688.     clr.w    _BgmMode        *0:ノーマル 1:BGM
  689.     clr.w    _PauseMode        *0:特に 1:ポーズ中
  690.     clr.w    _DisSuuzi10        * LED用数字クリア
  691.     not.w    _ReptMode        *0:ノーマル 1:リピート
  692.     jbra    _B_KLE_D
  693.  
  694. Tauto:********* [*]auto
  695.     jbsr    _CdcModeOn
  696.     jbsr    _ChkCdRom
  697.     clr.w    _PauseMode    *0:特に 1:ポーズ中
  698.     clr.w    _ReptMode    *0:ノーマル 1:リピート
  699.     not.w    _AutoMode    *0:ノーマル 1:オート
  700.     clr.w    _BgmMode    *0:ノーマル 1:BGM
  701.     tst.w    _TrkNo
  702.     jbne    _B_KLE_D
  703.     jbsr    Tent_sub *演奏
  704.     jbra    _B_KLE_D
  705.  
  706.  
  707. Trnd:********* [/] rand
  708.     jbsr    _CdcModeOn
  709.     jbsr    _ChkCdRom
  710.     tst.w    _RndMode    *0:ノーマル 1:ランダム
  711.     jbne    Trnd_L1
  712.         *ランダムスタート
  713.     move.w    #-1,_RndMode    *0:ノーマル 1:ランダム
  714.     clr.w    _MemMode    *0:ノーマル 1:メモリ
  715.     clr.w    _PauseMode    *0:特に 1:ポーズ中
  716.     clr.w    _ReptMode    *0:ノーマル 1:リピート
  717.     clr.w    _BgmMode    *0:ノーマル 1:BGM
  718.     jbsr    _CdPlay_Rnd2
  719.     jbsr    _MemChkT
  720.     jbra    _B_KLE_D
  721. Trnd_L1:
  722.         *ランダム停止(その曲終われば止まる)
  723.     clr.w    _RndMode    *0:ノーマル 1:ランダム
  724.     clr.w    _MemMode    *0:ノーマル 1:メモリ
  725.     clr.w    _ReptMode    *0:ノーマル 1:リピート
  726.     clr.w    _BgmMode    *0:ノーマル 1:BGM
  727.     move.w    #-1,_RndPt
  728.     jbra    _B_KLE_D
  729.  
  730. Tdel:********* [DEL]
  731.     jbsr    _CdcModeOn
  732.     jbsr    _ChkCdRom
  733.     tst.w    _MemLong
  734.     jbne    @f
  735.     rts
  736. @@:    subq.w    #1,_MemLong        *メモリながさ 0以外ならMEMORY
  737.     jbeq    _B_KLE_D
  738.     move.w    _MemLong(pc),_MemPtV        *確認表示用メモリポインタ
  739.     subq.w    #1,_MemPtV            *確認表示用メモリポインタ
  740.     jbsr    _MemChkT
  741.     jbsr    _B_KLE_M
  742.     clr.w    _LEDVMOD
  743.     jbsr    _WaitCC    *今の1/100s
  744.     moveq    #0,d0
  745.     rts
  746.  
  747. Tmem:************* [.] memory
  748.     jbsr    _CdcModeOn
  749.     jbsr    _ChkCdRom
  750.     jbsr    _DisSuuziCalc
  751.     move.l    d0,d7
  752.     jbeq    _B_KLE_D
  753.     move.l    _CdTrak(pc),d0
  754. @@:    cmp.l    d0,d7
  755.     jbls    @f        *d1<=d0max
  756.     jbra    _B_KLE_D
  757. @@:
  758.     lea    _MemSock(pc),a1
  759.     move.w    _MemLong(pc),d0
  760.     cmpi.w    #100-1,d0
  761.     jbcs    @f
  762.     jbra    _B_KLE_D
  763. @@:
  764.     move.b    d7,0(a1,d0.w)        *登録
  765.     move.w    _MemLong(pc),_MemPtV        *確認表示用メモリポインタ
  766.     addq.w    #1,_MemLong
  767.     jbsr    _B_KLE_M
  768.     jbsr    _MemChkT
  769.     clr.w    _LEDVMOD
  770.     jbsr    _WaitCC    *今の1/100s
  771.     moveq    #0,d0
  772.     rts
  773.  
  774. Tmemview:**********[,]
  775.     jbsr    _CdcModeOn
  776.     jbsr    _ChkCdRom
  777.     tst.w    _MemLong
  778.     jbne    @f
  779.     rts
  780. @@:    addq.w    #1,_MemPtV        *確認表示用メモリポインタ
  781.     move.w    _MemPtV(pc),d0
  782.     cmp.w    _MemLong(pc),d0        x,y   v(y)>=Long
  783.     jbcs    @f
  784.     move.w    #-1,_MemPtV    *MEM確認表示用メモリポインタ
  785.     jbra    _B_KLE_D
  786. @@:
  787.     jbsr    _B_KLE_M
  788.     clr.w    _LEDVMOD
  789.     jbsr    _WaitCC    *今の1/100s
  790.     moveq    #0,d0
  791.     rts
  792.  
  793. Ttm:    *******[ [  ]
  794.     jbsr    _CdcModeOn
  795.     jbsr    _ChkCdRom
  796.     tst.w    _LEDTMRV
  797.     jbne    @f
  798.     moveq    #0,d0
  799.     rts
  800. @@:    clr.w    _LEDTMRV
  801.     jbra    _B_KLE_D
  802.  
  803. Trvtm:    *******[  ]]
  804.     jbsr    _CdcModeOn
  805.     jbsr    _ChkCdRom
  806.     tst.w    _LEDTMRV
  807.     jbeq    @f
  808.     moveq    #0,d0
  809.     rts
  810. @@:    move.w    #-1,_LEDTMRV
  811.     jbra    _B_KLE_D
  812.  
  813. Tkigou:    ******    [記号入力]
  814.     jbsr    _CdcModeOn
  815.     jbsr    _ChkCdRom
  816.     jbra    _B_KLE_D
  817.  
  818. Thome:    ******    [HOME]
  819.     jbsr    _CdcModeOn
  820.     jbsr    _ChkCdRom
  821.     jbsr    _B_KLE_H
  822.  
  823.     tst.w    _CDIN
  824.     jbeq    ThomeLE
  825.     move.l    _plyinf,d0        *plyinf.fg
  826.     cmpi.b    #$11,d0
  827.     jbne    @f
  828.     move.l    _plyinf+4,d0        *plyinf.track_no;
  829.     move.w    d0,_TrkNo
  830.     move.w    d0,_TrkNoS
  831.     jbsr    _SetTrkLong
  832. @@:    jbsr    _MemChkT
  833. ThomeLE:
  834.     jbsr    _WaitCC    *今の1/100s
  835.     moveq    #0,d0
  836.     rts
  837.  
  838. Tesc:    ******    [ESC]
  839.             .globl    _CDCOFF
  840. _CDCOFF:
  841.     jbsr    FnkBerChk
  842.     jbeq    @f
  843.     jbsr    KillLeds
  844. @@:
  845.     clr.w    _CdcMode    *0:停止中
  846.     clr.w    _CDIN        *0:CDは入っていない 1:入っている
  847.     clr.w    IocsSwc        *白帯で1になったまま終わってしまうともう動かないので初期化
  848.     clr.b    _CHARBUF    *LED文字
  849.     rts
  850.  
  851. Tbs:    ******    [BS]
  852.     jbsr    _CdcModeOn
  853.     jbsr    _ChkCdRom
  854.     tst.w    _CdcMode
  855.     jbne    @f
  856.     rts
  857. @@:    tst.w    _DisMode    * 0 ; ノーマル 1 ; 表示させない
  858.     jbeq    @f
  859.     clr.w    _DisMode    * 0 ; ノーマル 1 ; 表示させない
  860.     jbra    _B_KLE_D
  861.     *rts
  862. @@:        *ノーマル
  863.     jbsr    FnkBerChk
  864.     jbeq    @f
  865.     jbsr    KillLeds
  866. @@:    move.w    #1,_DisMode    * 0 ; ノーマル 1 ; 表示させない
  867.     rts
  868.  
  869.  
  870.     ******** 数値(?)
  871. Tsuz0:    moveq    #0,d7
  872.     jbra    Tsuuzi
  873. Tsuz1:    moveq    #1,d7
  874.     jbra    Tsuuzi
  875. Tsuz2:    moveq    #2,d7
  876.     jbra    Tsuuzi
  877. Tsuz3:    moveq    #3,d7
  878.     jbra    Tsuuzi
  879. Tsuz4:    moveq    #4,d7
  880.     jbra    Tsuuzi
  881. Tsuz5:    moveq    #5,d7
  882.     jbra    Tsuuzi
  883. Tsuz6:    moveq    #6,d7
  884.     jbra    Tsuuzi
  885. Tsuz7:    moveq    #7,d7
  886.     jbra    Tsuuzi
  887. Tsuz8:    moveq    #8,d7
  888.     jbra    Tsuuzi
  889. Tsuz9:    moveq    #9,d7
  890. Tsuuzi:
  891.     jbsr    _CdcModeOn
  892.     jbsr    _ChkCdRom
  893.     move.b    _DisSuuzi1,_DisSuuzi10
  894.     move.b    d7,_DisSuuzi1
  895.     jbra    _B_KLE_K
  896.  
  897. Te:    ******    [E]
  898.     jbsr    _CdEje
  899.     jbsr    _ChkCdRom
  900.     jbra    _B_KLE_D
  901.                 .globl    _CdEje
  902. _CdEje:
  903.     movem.l    d3/d4,-(sp)
  904.     moveq    #0,d4
  905.     move.w    _SCSI_ID(pc),d4
  906.     moveq    #$00,d3
  907.     SCSI    _S_PAMEDIUM
  908.     lea.l    FgetsPTR(pc),a1
  909.     moveq.l    #$10,d3
  910.     SCSI    _S_REQUEST    *いらないかも
  911.     moveq    #$02,d3    *EJECT
  912.     SCSI    _S_STARTSTOP
  913.     movem.l    (sp)+,d3/d4
  914.     rts
  915.  
  916. Tr:    ******    [R]
  917.     jbsr    _CdReload
  918.     jbsr    _ChkCdRom
  919.     jbra    _B_KLE_D
  920.                 .globl    _CdReload
  921. _CdReload:
  922.     movem.l    d3/d4,-(sp)
  923.     moveq    #0,d4
  924.     move.w    _SCSI_ID(pc),d4
  925.     moveq    #$00,d3
  926.     SCSI    _S_PAMEDIUM
  927.     lea.l    FgetsPTR(pc),a1
  928.     moveq.l    #$10,d3
  929.     SCSI    _S_REQUEST    *いらないかも
  930.     moveq    #$03,d3
  931.     SCSI    _S_STARTSTOP
  932.     movem.l    (sp)+,d3/d4
  933.     rts
  934.  
  935. _DisSuuziCalc:
  936.     **********************
  937.     *
  938.     *リターン    d0=入力されてる数値
  939.     *
  940.     moveq    #0,d0
  941.     move.b    _DisSuuzi10,d0
  942.     move.w    d0,d1
  943.     lsl.w    #3,d0
  944.     add.w    d1,d0
  945.     add.w    d1,d0    * x10
  946.     moveq    #0,d1
  947.     move.b    _DisSuuzi1,d1
  948.     add.w    d1,d0
  949.     rts
  950.  
  951. Waiting:*-----------------------------
  952.     *    タイミング    1秒待ち
  953.     *
  954.     *//[引数]   d1.w=前のタイム($09CC.w)
  955.     *[戻り値] blt まだ
  956.     *      bge キー入力
  957.     *
  958.     move.w    _KeyTD(pc),d1    *前の1/100s
  959.     sub.w    $09CC.w,d1    *今の1/100s
  960.     jbeq    Wait_LL
  961.     jbcc    @f
  962.     *cmpi.w    #-3000,d1            *   -t を有効にしたいなら * を外す
  963.     *bge    @f                * /        が、不安定に
  964.     add.w    #6000,d1
  965. @@:
  966.     cmp.w    _KeyTDCT(pc),d1    *1秒見る
  967.     *blt    @f
  968.     rts
  969. Wait_LL:
  970. @@:    moveq    #10,d1
  971.     subq.l    #1,_TnLC
  972.     cmp.l    _TnLC(pc),d1    *
  973.     rts
  974.  
  975. _WaitCC:*-----------------------------
  976.     move.w    $09CC.w,_KeyTD    *今の1/100s
  977.     move.l    #TnLC_,_TnLC    *今のカウント
  978.     rts
  979. _WaitCC2:*-----------------------------
  980.     move.w    $09CC.w,d0    *今の1/100s
  981.     sub.w    _PlyWitT(pc),d0
  982.     move.w    d0,_KeyTD    *ちょっと先にしておく
  983.     move.l    #TnLC_*3,_TnLC    *今のカウント    *ちょっと先にしておく
  984.     rts
  985.  
  986. LoopChkSub:*--------------------------------
  987.     movem.l    d0-d2/a0-a2,-(sp)
  988.     jbsr    FnkBerChk
  989.     jbeq    @f
  990.     jbsr    DrawLeds
  991. @@:    movem.l    (sp)+,d0-d2/a0-a2
  992.     rts
  993.  
  994. LoopChk:*---------------------------
  995.     *
  996.     *    危険な割り込み
  997.     *        壊れるレジスタ無し
  998.     *
  999.  
  1000.     tst.w    _CdcMode
  1001.     jbne    @f
  1002.     rts
  1003. @@:
  1004.     movem.l    d1,-(sp)
  1005.     jbsr    Waiting
  1006.     movem.l    (sp)+,d1    *ccr壊さないように
  1007.     jbge    @f
  1008.     rts
  1009. @@:
  1010.     jbsr    LoopChkSub
  1011. LoopChk_:
  1012.     ****SCSI CHK
  1013.     jbsr    ScsiUseChk
  1014.     jbeq    @f        *つかえる
  1015.     rts
  1016. @@:
  1017.     move.w    $09CC.w,_KeyTD    *今の1/100s
  1018.     move.l    #TnLC_,_TnLC    *今のカウント
  1019.  
  1020.     movem.l    d0-d7/a0-a6,-(sp)
  1021.  
  1022.     jbsr    _ChkCdRom
  1023.  
  1024.     move.w    _PauseMode(pc),d1    *0:特に 1:ポーズ中
  1025.     jbeq    @f
  1026.     jbsr    _B_KLE_D2
  1027.     jbra    TCE
  1028. @@:
  1029.     move.w    _BgmMode(pc),d1 *tst
  1030.     jbeq    @f
  1031.     jbsr    _CdPlay_Bgm
  1032.     jbra    TCE
  1033. @@:
  1034.     move.w    _ReptMode(pc),d1 *tst
  1035.     jbeq    @f
  1036.     jbsr    _CdPlay_Rept
  1037.     jbra    TCE
  1038. @@:
  1039.     move.w    _RndMode(pc),d1 *tst
  1040.     jbeq    @f
  1041.     jbsr    _CdPlay_Rnd
  1042.     jbra    TCE
  1043. @@:
  1044.     move.w    _MemMode(pc),d1 *tst
  1045.     jbeq    @f
  1046.     jbsr    _CdPlay_Mem
  1047.     jbra    TCE
  1048. @@:
  1049.     move.w    _AutoMode(pc),d1 *tst
  1050.     jbeq    @f
  1051.     jbsr    _CdPlay_Auto
  1052.     jbra    TCE
  1053. @@:
  1054.     jbsr    _CdPlay___
  1055.  
  1056. TCE:    movem.l    (sp)+,d0-d7/a0-a6
  1057.     rts
  1058.  
  1059.  
  1060. ScsiUseChk:*-------------------------------
  1061.     *
  1062.     *    jbeq    :使える
  1063.     *    jbne    :つかえない
  1064.     *
  1065.     movem.l    d1/a1,-(sp)
  1066.     move.l    _SCSI_ROMB(pc),a1
  1067.     move.b    $D(a1),d1
  1068.     andi.b    #$F0,d1
  1069.     jbne    SUC_NE
  1070.     move.b    $B(a1),d1
  1071.     andi.b    #$07,d1
  1072.     jbne    SUC_NE
  1073.  
  1074.     lea    $E84040,a1    *DMAC #1
  1075.     btst.b    #3,(a1)
  1076.     jbne    SUC_NE
  1077.     *lea    $E84080,a1    *DMAC #2
  1078.     *btst.b    #3,(a1)
  1079.     *bne    SUC_NE
  1080.  
  1081.     moveq    #0,d1
  1082.     movem.l    (sp)+,d1/a1
  1083.     rts
  1084. SUC_NE:
  1085.     moveq    #-1,d1
  1086.     movem.l    (sp)+,d1/a1
  1087.     rts
  1088.  
  1089. _CdListRead:*--------------------
  1090.     ** 環境変数 CDCLIST チェック **
  1091.     move.w    #-1,-(sp)
  1092.     DOS    _BREAKCK
  1093.     addq.l    #2,sp
  1094.     move.w    d0,_CdLRBC
  1095.     move.w    #2,-(sp)
  1096.     DOS    _BREAKCK
  1097.     addq.l    #2,sp
  1098.     jbsr    _CdListSub
  1099.     tst.l    d0
  1100.     jbpl    @f
  1101.     clr.b    CDCLIST_FILENAME    *リストファイル無し
  1102.     jbra    _CdLRER
  1103. @@:    pea    CDCLIST_FILENAME(pc)
  1104.     clr.l    -(sp)
  1105.     pea    CDCLIST_NAME(pc)
  1106.     DOS    _GETENV
  1107.     lea    12(sp),sp
  1108.     tst.l    d0
  1109.     jbpl    @f
  1110.     clr.b    CDCLIST_FILENAME    *リストファイル無し
  1111.     jbra    _CdLRER
  1112. @@:
  1113.     move.w    #0,-(sp)
  1114.     pea    CDCLIST_FILENAME(pc)
  1115.     DOS    _OPEN
  1116.     addq.l    #6,sp
  1117.     tst.l    d0
  1118.     jbmi    _CdLRER    *エラー
  1119.     move.w    d0,Hendl
  1120.     move.l    d0,-(sp)
  1121.      bsr    _CdListDisp
  1122.     addq.l    #4,sp
  1123.     clr.l    _SetNameAdd
  1124.     move.l    d0,d1
  1125.     jbpl    @f
  1126.     move.w    Hendl(pc),-(sp)
  1127.     DOS    _CLOSE
  1128.     addq.l    #2,sp
  1129.     jbsr    _CdNameClr
  1130.     jbra    _CdLRER
  1131. @@:
  1132.     move.w    Hendl(pc),-(sp)
  1133.     DOS    _CLOSE
  1134.     addq.l    #2,sp
  1135.     move.w    _CdLRBC(pc),-(sp)
  1136.     DOS    _BREAKCK
  1137.     addq.l    #2,sp
  1138.     move.w    #1,_CDIN
  1139.     moveq    #0,d0
  1140.     rts
  1141.  
  1142. _CdLRER:    *ERR
  1143.     jbsr    _NoTtlFile
  1144.     move.w    _CdLRBC(pc),-(sp)
  1145.     DOS    _BREAKCK
  1146.     addq.l    #2,sp
  1147.     move.w    #1,_CDIN
  1148.     moveq    #-1,d0
  1149.     rts
  1150.  
  1151. _CdLRBC:
  1152.     .dc.w    0
  1153.  
  1154.     .include CDRD.s
  1155.     .include CDRC_.s
  1156.     .include CDRT.s
  1157.  
  1158.     .globl    _Rand
  1159. _Rand:    *------------------------------------------
  1160. __RAND        equ    $FE0E
  1161.     .dc.w    __RAND
  1162.     rts
  1163.  
  1164.     .globl    _Randomize
  1165. _Randomize:
  1166.     *------------------------------------------
  1167. __RANDOMIZE    equ    $FE0C
  1168.     move.l    4(a7),d0
  1169.     .dc.w    __RANDOMIZE
  1170.     rts
  1171.  
  1172.     .globl    _Fgets
  1173. _Fgets:    *------------------------------------------
  1174.     *    ファイルから1行をバッファに読み込み
  1175.     *    Fgets(f)
  1176.  
  1177.     movea.l    4(sp),a2
  1178.     move.w    #1,-(sp)
  1179.     move.l    #0,-(sp)
  1180.     move.w    a2,-(sp)
  1181.     DOS    _SEEK
  1182.     addq.l    #8,sp
  1183.     tst.l    d0
  1184.     jbpl    @f
  1185.     moveq    #-1,d0    *えらー
  1186.     rts
  1187. @@:
  1188.     move.l    d0,d2        *シークポインタ
  1189.     move.l    #256,-(sp)
  1190.     pea    FgetsPTR(pc)
  1191.     move.w    a2,-(sp)
  1192.     DOS    _READ
  1193.     lea    10(sp),sp
  1194.     tst.l    d0
  1195.     jbpl    @f
  1196.     moveq    #-1,d0    *エラー
  1197.     rts
  1198. @@:
  1199.     jbne    @f
  1200.     moveq    #0,d0    *0;終了
  1201.     rts
  1202. @@:
  1203.     lea    FgetsPTR(pc),a1
  1204.     moveq    #0,d1
  1205. _fgL2:
  1206.     move.b    (a1)+,d0
  1207.     jbeq    _fgL3
  1208.     cmpi.b    #$0d,d0
  1209.     jbeq    _fgL1_
  1210.     cmpi.b    #$0a,d0
  1211.     jbeq    _fgL1
  1212.  
  1213.     cmpi.b    #$80,d0        *全角
  1214.     jbcs    @f
  1215.     cmpi.b    #$9F+1,d0
  1216.     jbcs    _fgL4
  1217. @@:    cmpi.b    #$E0,d0
  1218.     jbcc    _fgL4
  1219.  
  1220.     addq.w    #1,d1
  1221.     cmpi.w    #256,d1
  1222.     jbcc    _fgL3
  1223.     jbra    _fgL2
  1224. _fgL4:
  1225.     move.b    (a1)+,d0
  1226.     addq.w    #2,d1
  1227.     cmpi.w    #256,d1
  1228.     jbcc    _fgL3
  1229.     jbra    _fgL2
  1230.  
  1231. _fgL3:
  1232.     clr.b    (a1)
  1233.     move.l    #FgetsPTR,d0
  1234.     rts
  1235. _fgL1_:
  1236.     addq.w    #1,d1
  1237. _fgL1:
  1238.     addq.w    #1,d1
  1239.     move.b    #0,-1(a1)
  1240.  
  1241.     move.w    #0,-(sp)
  1242.     move.l    d2,-(sp)
  1243.     move.w    a2,-(sp)
  1244.     DOS    _SEEK
  1245.     move.w    #1,-(sp)
  1246.     move.l    d1,-(sp)
  1247.     move.w    a2,-(sp)
  1248.     DOS    _SEEK
  1249.     lea    16(sp),sp
  1250.     move.l    #FgetsPTR,d0
  1251.     rts
  1252.  
  1253. FgetsPTR:
  1254.     .ds.b    256        * 読み込み用バッファ
  1255.     .dc.w    0
  1256.     .even
  1257.  
  1258.  
  1259.  
  1260. _ChkCdRom:*----------------------------------
  1261.     *
  1262.     *    なにやるもこれを一度コール
  1263.     *    以下_plyinfに引数がセットされる
  1264.     *
  1265.     jbsr    _WaitCC    *今の1/100s
  1266.     pea    _plyinf(pc)
  1267.     jbsr    _ChkPly
  1268.     addq.l    #4,sp
  1269.     tst.l    d0
  1270.     jbne    ChkCR_NoCd            **エラー
  1271.     jbsr    _ChkPlyDisp
  1272.  
  1273.     move.l    _plyinf(pc),d0
  1274.     cmpi.b    #$11,d0
  1275.     jbeq    @f
  1276.     cmpi.b    #$12,d0
  1277.     jbeq    @f
  1278.     clr.w    _TrkNo
  1279. @@:
  1280.     .if 0
  1281.     tst.w    _CddevSw        *0: SCSI直接 1:計測IOCTRL
  1282.     jbne    @f
  1283.  
  1284.     pea    _max_(pc)
  1285.     pea    _min_(pc)
  1286.     pea    _leadout_address_(pc)
  1287.     jbsr    _RedTOC            *( &leadout_address, &min, &max ) != 0 )
  1288.     lea    12(sp),sp
  1289.     tst.l    d0
  1290.     jbne    ChkCR_NoCd            **エラー
  1291.     move.l    _leadout_address_(pc),d0
  1292.     cmp.l    _CdLong(pc),d0
  1293.     jbne    ChkCR_ChainCd            **ちがうCDだ
  1294.     move.l    _max_(pc),d0
  1295.     cmp.l    _O_CdTrak(pc),d0
  1296.     jbne    ChkCR_ChainCd            **ちがうCDだ
  1297. @@:
  1298.     .endif
  1299.  
  1300.     move.w    _CDIN(pc),d0 *tst    *0:CDは入っていない 1:入っている
  1301.     jbne    @f
  1302.     jbsr    _CdListRead
  1303. @@:
  1304.     rts
  1305.  
  1306. ChkCR_NoCd:
  1307.     move.w    _CDIN(pc),d0 *tst    *0:CDは入っていない 1:入っている
  1308.     jbeq    @f
  1309.     clr.w    _CDIN        *0:CDは入っていない 1:入っている
  1310.     clr.w    _LEDVMOD
  1311.     clr.w    _CdLong        *長さ
  1312.     clr.w    _TrkNo
  1313.     clr.w    _TrkNoS
  1314.     clr.w    _DisSuuzi10    * LED用数字クリア
  1315.     clr.b    _CdName        *CD名
  1316.     clr.w    _ReptMode        *0:ノーマル 1:リピート
  1317.     clr.w    _MemMode        *0:ノーマル 1:メモリ
  1318.     clr.w    _BgmMode        *0:ノーマル 1:BGM
  1319.     clr.w    _PauseMode        *0:特に 1:ポーズ中
  1320.     clr.w    _MemLong        *メモリながさ 0以外ならMEMORY
  1321.     move.w    #-1,_MemPt
  1322.     move.w    #-1,_RndPt
  1323. @@:    rts
  1324.  
  1325. ChkCR_ChainCd:
  1326.     clr.w    _LEDVMOD
  1327.     clr.w    _DisSuuzi10    * LED用数字クリア
  1328.     jbsr    _CdListRead
  1329.     rts
  1330.  
  1331.     *RedTOC用
  1332. _leadout_address_:
  1333.     .dc.l    0
  1334. _min_:    .dc.l    0
  1335. _max_:    .dc.l    0
  1336.  
  1337.     .include CDRC__.s
  1338.     .include SCSIC.s
  1339.  
  1340.         .even
  1341.  
  1342. _KeyTD:
  1343.     .dc.w    0        *前の1/100s
  1344. _TnLC:
  1345.     .dc.l    $0000        *カウント
  1346. Hendl:
  1347.     .dc.l    0
  1348. _ScscUse:
  1349.     .dc.w    0        *0;つかっていない
  1350. _SeekNow:
  1351.     .dc.l    -1        *-1;non !=;シーク中
  1352. _SeekNowTk:
  1353.     .dc.w    0        *_SeekNow補佐 trakno
  1354. _SeekNowMd:
  1355.     .dc.w    0        *0;KEY 1;Trap で使用
  1356. _KeyPush:
  1357.     .dc.w    0        *なにかキーを押している?
  1358.  
  1359.  
  1360.     ***(commandでも使用)
  1361. __COM__:
  1362.  
  1363.     *-------------------------
  1364.     *    キー関係
  1365.     *-------------------------
  1366.         .globl    _SFTK
  1367.     *| 0 0 0 0 OPT.2 OPT.1 CTRL SHIFT | XF3 XF2 XF1 0 0 0 0 0| 0 0 0 0 0 0 XF5 XF4 
  1368. _SFTK:
  1369.     .dc.l    1
  1370. _KeySwi:
  1371.     .dc.w    1    *1;キー入力可能 0;不可能
  1372. CmdC_List:
  1373.     defccl
  1374. CmdC_ListD:
  1375.     defccl
  1376.  
  1377.     *-------------------------
  1378.     *    LED関係
  1379.     *-------------------------
  1380. _LEDVMOD:
  1381.     .dc.w    0    *0;B_KLE_D,B_KLE_D
  1382.             *1;B_KLE_M,B_KLE_K
  1383. _CHARBUF:
  1384.     .dcb.b    40,0        *LEDに表示されている文字列
  1385. _LEDBUF:
  1386.     .dcb.b    10*16,$FF    *テキスト表示用のパターンバンク
  1387. _NAMEBUF:
  1388.     .dcb.b    40*16,$FF
  1389. _DRAWADDS:
  1390.     *.dc.l    $E40000+31*16*$80+2
  1391.     .dc.l    $E40000+29*16*$80+49
  1392. _LEDTMRV:
  1393.     .dc.w    0    *0;ノーマル 1;リバース
  1394. _DisForce:
  1395.     .dc.w    0    * 0 ; ノーマル 1 ; テキストを使っていても表示させる!!
  1396. _DisMode:
  1397.     .dc.w    0    * 0 ; ノーマル 1 ; 表示させない
  1398.  
  1399.     *-------------------------
  1400.     *    CD(MODE)管理関係
  1401.     *-------------------------
  1402.         .globl    _CDIN,_BgmStAdds,_BgmEdAdds
  1403. _CDIN:
  1404.     .dc.w    0    *0:CDは入っていない 1:入っている
  1405. _TrkNo:
  1406.     .dc.w    0    *演奏中 トラックナンバー    0;停止
  1407. _TrkNoS:
  1408.     .dc.w    0    *最後に演奏のトラックナンバー
  1409. _PauseMode:
  1410.     .dc.w    0    *0:特に 1:ポーズ中
  1411. _CdcMode:
  1412.     .dc.w    1    *0:停止中 1:運転中
  1413. _AutoMode:
  1414.     .dc.w    0    *0:ノーマル 1:オート
  1415. _RndMode:
  1416.     .dc.w    0    *0:ノーマル 1:ランダム
  1417. _ReptMode:
  1418.     .dc.w    0    *0:ノーマル 1:リピート
  1419. _BgmMode:
  1420.     .dc.w    0    *0:ノーマル 1:BGM
  1421. _BgmStAdds:
  1422.     .dc.l    0
  1423. _BgmEdAdds:
  1424.     .dc.l    0
  1425.  
  1426.     *-------------------------
  1427.     *    プログラム(RND)関係
  1428.     *-------------------------
  1429.         .globl    _MemLong,_MemSock
  1430. _MemMode:
  1431.     .dc.w    0    *0:ノーマル 1:メモリー
  1432. _MemPt:
  1433.     .dc.w    -1    *メモリポインタ
  1434. _MemPtV:
  1435.     .dc.w    0    *確認表示用メモリポインタ
  1436. _MemLong:
  1437.     .dc.w    0    *メモリながさ 0以外ならMEMORY
  1438. _MemSock:
  1439.     .dcb.b    100,0    *メモリ
  1440.     .even
  1441. _RndPt:
  1442.     .dc.w    -1        *ランダムポインタ
  1443. _RndLong:
  1444.     .dc.w    0        *ランダムテーブルながさ
  1445. _RndSock:
  1446.     .dcb.b    TrkMax,0    *ランダムテーブル
  1447.     .even
  1448.  
  1449.     *-------------------------
  1450.     *    SCSI直接関係
  1451.     *-------------------------
  1452.         .globl    _SCSI_ROMB,_SCSI_ID,_CddevSw,_CddDrvNo
  1453. _SCSI_ROMB:
  1454.     .dc.l    0
  1455. _SCSI_ID:
  1456.     .dc.w    6
  1457. _CddevSw:
  1458.     .dc.w    0            *0: SCSI直接 1:計測IOCTRL
  1459. _CddDrvNo:
  1460.     .dc.w    0            *計測IOCTRL用ドライヴNO
  1461.  
  1462.     *-------------------------
  1463.     *    内部ワーク関係
  1464.     *-------------------------
  1465. _ExTrak:
  1466.     .dc.w    0    *1;拡張トラックあり
  1467. _PlyWitT:
  1468.     .dc.w    0        *Ply後の待ちタイム
  1469. _KeyTDCT:
  1470.     .dc.w    100        *カウント 1/100s
  1471. _STFLAG:
  1472.     .dc.w    $07            *常駐チェック用
  1473. IocsSwc:
  1474.     .dc.w    0
  1475. MuTmMod:
  1476.     .dc.w    0            *0:ノーマル 1:強引にキーベクタを書き替え
  1477. CDCLIST_NAME:
  1478.     .dc.b    'CDCLIST',0        *タイトルリストファイル用
  1479.     .even
  1480. CDCLIST_FILENAME:
  1481.     .ds.b    256
  1482.     .even
  1483.  
  1484.     *-------------------------------------
  1485.     *    内部ワーク関係(trapで返す)
  1486.     *-------------------------------------
  1487.     *----------列びを変えてはいけない
  1488.     .globl    _CdTrak,_CdLong,_CdName,_ListLong,_ListStTm,_ListName
  1489.         .dc.w    0
  1490. _CdcTrak:    .dc.l    TrkMax    *CDCの最大記憶数
  1491. _CdTrak:    .dc.l    0    *そのCDの曲数(拡張トラック対応)
  1492. _CdLong:    .dc.l    0    *長さ
  1493. _CdListS:    .dc.l    0    *CDLISTにあるなら 1 
  1494. _CdName:    .dcb.b    40,0    *CD名
  1495. _ListName:    .dcb.b    40*TrkMax,0    *メモリ    40文字まで
  1496. _ListLong:    .dcb.l    TrkMax,0    *ながさ時間    最上位ビットが立って入れば 拡張曲名あり
  1497. _ListStTm:    .dcb.l    TrkMax,0    *スタート時間    最上位ビットが立って入れば データトラック
  1498.     .even
  1499.         *    ListLongに拡張曲名fgあれば
  1500.         *      _ListLongの後ろからチェック 0xFF0000+曲ナンバーがあるはず
  1501.         *      対応する_ListStTmにオフセット値がある
  1502.         *     あっても次のものをチェックすること
  1503.         *      決まった場合対応する(_ListName)+2から拡張曲名がある
  1504.         *
  1505.  
  1506.     .globl    _O_CdTrak,_O_ListLong,_O_ListStTm,_O_ListTrak
  1507. _O_CdTrak:    .dc.l    0    *そのCDの本当の曲数
  1508. _O_ListLong:    .dcb.l    100,0    *各トラックの本当のながさ時間
  1509. _O_ListStTm:    .dcb.l    100,0    *各トラックの本当のスタート時間    最上位ビットが立って入れば データトラック
  1510. _O_ListTrak:    .dcb.b    100,0    *本当のトラック を 拡張トラックに
  1511.     .even
  1512.  
  1513.     *----------列びを変えてはいけない
  1514.     *ChkPly用
  1515.     .globl    _plyinf
  1516.     .dc.w    0    *CDIN ひかえ
  1517. _plyinf:
  1518.     .dc.l    0    *int    fg;            /* 状態 0x11 演奏中,0x12 演奏中断 */
  1519.     .dc.l    0    *int    track_no;        /* 曲番号 */
  1520.     .dc.l    0    *int    time;            /* 現在の演奏時間 */
  1521.     .dc.l    0    *int    address;        /* 演奏アドレス */
  1522.     .dc.l    0    *int    track_long;        /* 演奏中の曲のながさ*/
  1523.     .dc.l    0    *CD名アドレス
  1524. _SetNameAdd:
  1525.     .dc.l    0    *曲名アドレス
  1526. _Ledtta:
  1527.     .dc.l    0    *LED文字アドレス
  1528. _Ledtrk:
  1529.     .dc.l    0    *LED数値 曲番号
  1530. _Ledprg:
  1531.     .dc.l    0    *LED数値 プログラムナンバー 0;非表示  -1:MAX= -2:INP=
  1532. _Ledtim:
  1533.     .dc.l    0    *LED数値 MSF型
  1534. _Ledflg:
  1535.     .dc.l    0    *LEDその他の状態
  1536. _DisSuuzi10:
  1537.     .dc.b    0    * LED用数字    10の位
  1538. _DisSuuzi1:
  1539.     .dc.b    0    * LED用数字
  1540.     .even
  1541.  
  1542. __COM__S:
  1543.  
  1544.  
  1545. EndStatio:*******************常駐部
  1546.  
  1547.  
  1548.     .globl    _fprintf_
  1549. _fprintf_:******************(Cライク)
  1550.     link    a6,#0
  1551.     movem.l    d3-d7/a3-a5,-(sp)
  1552.     move.l    8(a6),d0
  1553.     move.w    d0,FILENO
  1554.     movea.l    12(a6),a4
  1555.     lea.l    16(a6),a5
  1556.  
  1557. prL1:    move.b    (a4)+,d1
  1558.     jbeq    pri_end
  1559.     cmpi.b    #'%',d1
  1560.     jbeq    pri_kazu
  1561.     andi.w    #$00FF,d1
  1562.     move.l    d1,-(sp)
  1563.     jbsr    DosFputc
  1564.     addq.l    #4,sp
  1565.     jbra    prL1
  1566.  
  1567. pri_kazu:
  1568.     move.l    (a5)+,d7    *数
  1569.     move.b    (a4)+,d1
  1570.     jbeq    pri_end
  1571.     cmpi.b    #'1',d1
  1572.     jbeq    pr_K1
  1573.     cmpi.b    #'2',d1
  1574.     jbeq    pr_K2
  1575.     cmpi.b    #'3',d1
  1576.     jbeq    pr_K3
  1577.     cmpi.b    #'4',d1
  1578.     jbeq    pr_K4
  1579.     andi.w    #$00FF,d1
  1580.     move.l    d1,-(sp)
  1581.     jbsr    DosFputc
  1582.     addq.l    #4,sp
  1583.     jbra    prL1
  1584.  
  1585. pr_K4:
  1586.     divu    #1000,d7
  1587.     move.l    d7,d1
  1588.     addi.b    #'0',d1
  1589.     andi.w    #$00FF,d1
  1590.     move.l    d1,-(sp)
  1591.     jbsr    DosFputc
  1592.     addq.l    #4,sp
  1593.     swap    d7
  1594.     andi.l    #$0000FFFF,d7
  1595. pr_K3:
  1596.     divu    #100,d7
  1597.     move.l    d7,d1
  1598.     addi.b    #'0',d1
  1599.     andi.w    #$00FF,d1
  1600.     move.l    d1,-(sp)
  1601.     jbsr    DosFputc
  1602.     addq.l    #4,sp
  1603.     swap    d7
  1604.     andi.l    #$0000FFFF,d7
  1605. pr_K2:
  1606.     *move.l    d7,d1
  1607.     divu    #10,d7
  1608.     addi.b    #'0',d7
  1609.     andi.w    #$00FF,d7
  1610.     move.l    d7,-(sp)
  1611.     jbsr    DosFputc
  1612.     addq.l    #4,sp
  1613.     swap    d7
  1614. pr_K1:
  1615.     addi.b    #'0',d7
  1616.     andi.w    #$00FF,d7
  1617.     move.l    d7,-(sp)
  1618.     jbsr    DosFputc
  1619.     addq.l    #4,sp
  1620.     jbra    prL1
  1621.  
  1622. pri_end:
  1623.     movem.l    (sp)+,d3-d7/a3-a5
  1624.     unlk    a6
  1625.     rts
  1626. FILENO:
  1627.     .dc.w    0
  1628. DosFputc:
  1629.     move.l    4(a7),d0
  1630.     move.w    FILENO(pc),-(sp)
  1631.     move.w    d0,-(sp)
  1632.     DOS    _FPUTC
  1633.     addq.l    #4,sp
  1634.     rts
  1635.  
  1636.  
  1637. MarkerChk:*----------------------------------------
  1638.     *    a0 アドレス
  1639.     *
  1640.     *[戻り値] bne ちがう
  1641.     *      beq あっている
  1642.     cmpa.l    #$00F00000,a0
  1643.     jbcc    @f
  1644.     cmp.l    #HEAD1,(a0)
  1645.     jbne    @f
  1646.     cmp.l    #HEAD2,4(a0)
  1647.     jbne    @f
  1648.     cmpa.l    a0,a0        *z=1
  1649. @@:
  1650.     rts
  1651.  
  1652.  
  1653. InvChk:*------------------------------------0H`
  1654.  
  1655.     *    a0.l==なら非常駐
  1656.     *    a0.l!=なら常駐
  1657.     movea.l    (a0),a0            *一つ前のポインタ
  1658.     cmpa.l    #$00F00000,a0
  1659.     jbcc    IC1
  1660.     cmp.l    #HEAD1,$0100+(head-SS)(a0)
  1661.     jbne    @f
  1662.     cmp.l    #HEAD2,$0104+(head-SS)(a0)
  1663.     jbne    @f
  1664.     adda.w    #$100,a0    **[SS]のポインタ
  1665.     rts
  1666. @@:                    **違う
  1667.     tst.l    (a0)            *一つ前のポインタ
  1668.     jbne    InvChk            *0でない(上へ)
  1669. IC1:    sub.l    a0,a0    *非常駐
  1670.     rts
  1671.  
  1672. AtoI2:*-------------------------------*
  1673.     move.b    (a2),d0
  1674.     jbeq    AtoI2E_
  1675.     cmpi.b    #' ',d0
  1676.     jbeq    AtoI2E_
  1677.     cmpi.b    #'0',d0
  1678.     jbcs    AtoI2E
  1679.     cmpi.b    #'9'+1,d0
  1680.     jbcs    AtoI
  1681. AtoI2E:
  1682.     moveq    #-2,d0
  1683.     rts
  1684. AtoI2E_:
  1685.     moveq    #-1,d0
  1686.     rts
  1687. AtoI:*----------------------------------------
  1688.     *    a2 アドレス
  1689.     *[戻り値] d0.l 数字
  1690.     moveq    #0,d0
  1691.     move.b    (a2),d2
  1692.     cmpi.b    #'$',d2
  1693.     jbeq    AtoHI
  1694. @@:    move.b    (a2)+,d2
  1695.     subi.b    #'0',d2
  1696.     jbcs    AIr
  1697.     cmpi.b    #9,d2
  1698.     jbhi    AIr
  1699.     andi.l    #$0000FF,d2
  1700.     mulu    #10,d0
  1701.     add.l    d2,d0
  1702.     jbra    @b
  1703. AIr:    subq    #1,a2
  1704.     rts
  1705. AtoHI:
  1706.     *(Hex専用)
  1707.     move.b    (a2)+,d2    *$ skip
  1708. @@:    move.b    (a2)+,d2
  1709.     subi.b    #'0',d2
  1710.     jbcs    AHIL1
  1711.     cmpi.b    #9,d2
  1712.     jbhi    AHIL1
  1713.     lsl.l    #4,d0
  1714.     add.l    d2,d0
  1715.     jbra    @b
  1716. AHIL1:
  1717.     ori.b    #$20,d2
  1718.     subi.b    #'a'-'0',d2
  1719.     jbcs    AHIL2
  1720.     cmpi.b    #5,d2
  1721.     jbhi    AHIL2
  1722.     lsl.l    #4,d0
  1723.     addi.l    #10,d0
  1724.     add.l    d2,d0
  1725.     jbra    @b
  1726. AHIL2:    subq    #1,a2
  1727.     rts
  1728.  
  1729. SF    equ $7C
  1730. SFT5    equ $1
  1731. SFPW    equ $2
  1732.  
  1733. SPP:    .dc.l    0
  1734.  
  1735. init:*------------------------------------------------------------------
  1736.     lea    usrsp(pc),sp
  1737.     Print    LR1(pc)
  1738.     ** 常駐チェック **
  1739.     suba.l    a1,a1
  1740.     SUPER
  1741.     move.l    d0,SPP
  1742.     moveq    #0,d1
  1743.     jbsr    InvChk
  1744.     movea.l    a0,a3        *常駐先頭アドレス
  1745.     move.l    a0,ST_CHK    *常駐先頭アドレス
  1746.  
  1747.     movea.l    TRP5_,a0
  1748.     suba    #TRP5-head,a0
  1749.     jbsr    MarkerChk
  1750.     jbne    @f
  1751.     bset    #0,d1
  1752. @@:
  1753.     movea.l    PWSW_,a0
  1754.     suba    #PWSW-head,a0
  1755.     jbsr    MarkerChk
  1756.     jbne    @f
  1757.     bset    #1,d1
  1758. @@:
  1759.     movea.l    B_KEYSNS_,a0
  1760.     suba    #B_KEYSNS-head,a0
  1761.     jbsr    MarkerChk
  1762.     jbne    @f
  1763.     bset    #2,d1
  1764. @@:
  1765.     movea.l    BITSNS_,a0
  1766.     suba    #BITSNS-head,a0
  1767.     jbsr    MarkerChk
  1768.     jbne    @f
  1769.     bset    #3,d1
  1770. @@:
  1771.     movea.l    MFP_,a0
  1772.     suba    #MFP-head,a0
  1773.     jbsr    MarkerChk
  1774.     jbne    @f
  1775.     bset    #4,d1
  1776. @@:
  1777.     move.w    #INTVCG_,-(sp)
  1778.     DOS    _INTVCG
  1779.     addq.l    #2,sp
  1780.     movea.l    d0,a0
  1781.     suba    #INTVCG-head,a0
  1782.     jbsr    MarkerChk
  1783.     jbne    @f
  1784.     bset    #5,d1
  1785. @@:
  1786.     move.w    #INTVCS_,-(sp)
  1787.     DOS    _INTVCG
  1788.     addq.l    #2,sp
  1789.     movea.l    d0,a0
  1790.     suba    #INTVCS-head,a0
  1791.     jbsr    MarkerChk
  1792.     jbne    @f
  1793.     bset    #6,d1
  1794. @@:
  1795.     move.l    d1,VC_CHK        *d1に常駐状態
  1796.  
  1797.     ** 常駐していたらそのデータを引用 **
  1798.     movea.l    ST_CHK(pc),a3
  1799.     move.l    a3,d0
  1800.     jbeq    conl
  1801.     lea    __COM__-SS(a3),a0
  1802.     lea    __COM__(pc),a1
  1803.     move.l    #(__COM__S-__COM__)/2-1,d0
  1804. @@:    move.w    (a0)+,(a1)+
  1805.     dbra    d0,@b
  1806.     *move.w    #1,_KeySwi
  1807.     clr.w    MuTmMod
  1808. conl:
  1809.     ** SCSI ROM 位置チェック **
  1810.     lea    $FC0024,a1
  1811.     cmpi.l    #'SCSI',(a1)
  1812.     beq    SUC_L1
  1813.     lea    $EA0044,a1
  1814.     cmpi.l    #'SCSI',(a1)
  1815.     jbeq    @f
  1816.     pea    LRSCRM(pc)
  1817.     jbra    PE    *end
  1818. @@:        **スロット
  1819.     lea    $EA0000,a1
  1820.     jbra    @f
  1821. SUC_L1:        **内蔵モデル
  1822.     lea    $E96020,a1
  1823. @@:    move.l    a1,_SCSI_ROMB
  1824.     ** 環境変数 CDROM チェック **
  1825.     pea    GETBUF(pc)
  1826.     clr.l    -(sp)
  1827.     pea    CDROM_NAME(pc)
  1828.     DOS    _GETENV
  1829.     lea    12(sp),sp
  1830.     tst.l    d0
  1831.     jbmi    @f
  1832.     move.b    GETBUF(pc),d0
  1833.     subi.b    #'0',d0
  1834.     jbmi    @f
  1835.     cmpi.b    #8,d0
  1836.     jbcc    @f
  1837.     andi.w    #$00FF,d0
  1838.     move.w    d0,_SCSI_ID
  1839. @@:
  1840.     move.l    ST_CHK(pc),d0
  1841.     jbne    conl2
  1842.     movem.l    d0-d2/a0-a2,-(sp)
  1843.     jbsr    _CdListSub
  1844.     movem.l    (sp)+,d0-d2/a0-a2
  1845. conl2:
  1846.     ** コマンドラインチェック **
  1847.     tst.b    (a2)+        *スキップ
  1848. sw:    move.b    (a2)+,d0
  1849.     jbeq    swend
  1850.     cmpi.b    #' ',d0
  1851.     jbeq    sw
  1852.     cmpi.b    #$09,d0        *tab
  1853.     jbeq    sw
  1854.     cmpi.b    #'-',d0
  1855.     jbeq    swc
  1856.     cmpi.b    #'/',d0
  1857.     jbeq    swc
  1858.     cmpi.b    #'0',d0
  1859.     jbcs    @f
  1860.     cmpi.b    #'9'+1,d0
  1861.     jbcs    OwnPlay
  1862. @@:
  1863.     ori.b    #$20,d0    *小文字化!
  1864.     cmpi.b    #'a',d0
  1865.     jbeq    AllPlay
  1866. エラー:
  1867.     pea    LR6(pc)
  1868.     clr.w    eddip    *常駐エリアにデータを戻すか
  1869.     jbra    PE    *end
  1870.  
  1871. swc:    **スイッチ判断
  1872.     move.b    (a2)+,d0
  1873.     jbeq    エラー
  1874.     cmpi.b    #'?',d0
  1875.     jbeq    help
  1876.     ori.b    #$20,d0    *小文字化!
  1877.     cmpi.b    #'r',d0
  1878.     jbeq    swcm
  1879.     cmpi.b    #'i',d0
  1880.     jbeq    swcm
  1881.     cmpi.b    #'l',d0
  1882.     jbeq    swcm
  1883.     cmpi.b    #'d',d0
  1884.     jbeq    swcm
  1885.  
  1886.     cmpi.b    #'e',d0
  1887.     jbeq    eswc
  1888.     cmpi.b    #'b',d0
  1889.     jbeq    bswc
  1890.     cmpi.b    #'t',d0
  1891.     jbeq    tswc
  1892.     cmpi.b    #'p',d0
  1893.     jbeq    pswc
  1894.     cmpi.b    #'k',d0
  1895.     jbeq    kswc
  1896.     cmpi.b    #'f',d0
  1897.     jbeq    fswc
  1898.     cmpi.b    #'o',d0
  1899.     jbeq    oswc
  1900.     cmpi.b    #'x',d0
  1901.     jbeq    xswc
  1902.     cmpi.b    #'a',d0
  1903.     jbeq    aswc
  1904.     cmpi.b    #'m',d0
  1905.     jbeq    mswc
  1906.     cmpi.b    #'z',d0
  1907.     jbeq    zswc
  1908.     cmpi.b    #'s',d0
  1909.     jbeq    sswc    *CD_STOP
  1910.     cmpi.b    #'c',d0
  1911.     jbeq    cswc    *CD_CONT
  1912.     cmpi.b    #'h',d0
  1913.     jbeq    help
  1914.     pea    LR7(pc)
  1915.     clr.w    eddip    *常駐エリアにデータを戻すか
  1916.     jbra    PE    *end
  1917.  
  1918. swcoo:    .dc.w    0    *なにかコマンドをやったら1
  1919. swcom:    .dc.w    0    *最終的なコマンド
  1920. swtr:    .dc.w    0    * /trがある?
  1921. swpw:    .dc.w    0    * /pwがある?
  1922. sw_e:    .dc.w    0    * /eがある?
  1923. eddip:    .dc.w    0    *常駐エリアにデータを戻すか
  1924.  
  1925. swend:**************************************
  1926.     move.b    swcom(pc),d0
  1927.     cmpi.b    #'r',d0
  1928.     jbeq    free
  1929.     cmpi.b    #'i',d0
  1930.     jbeq    keep
  1931.     cmpi.b    #'d',d0
  1932.     jbeq    dswc    *CD_ERY
  1933.     cmpi.b    #'l',d0
  1934.     jbeq    lswc    *CD_LIST
  1935.     cmpi.b    #'m',d0
  1936.     jbeq    m2swc    *CD_MEM_LIST
  1937.     move.w    swcoo(pc),d0    *なにかコマンドをやったら1
  1938.     jbne    PEE
  1939.  
  1940.     movea.l    SPP,a1
  1941.     SUPER
  1942.     jbsr    _cd_play_inf
  1943.     jbra    PEE
  1944.  
  1945. swcm:**************************************
  1946.     move.b    d0,swcom
  1947.     move.b    (a2),swcom+1
  1948.     jbeq    @f
  1949.     addq.l    #1,a2
  1950. @@:    jbra    sw
  1951.  
  1952.  
  1953. eswc:**************************************
  1954.     tst.w    sw_e    * /eがある?
  1955.     jbne    エラー
  1956.     move.w    #-1,sw_e
  1957.     pea    GETBUF(pc)
  1958.     clr.l    -(sp)
  1959.     pea    CDCSW_NAME(pc)
  1960.     DOS    _GETENV
  1961.     lea    12(sp),sp
  1962.     tst.l    d0
  1963.     jbmi    @f
  1964.     lea    GETBUF(pc),a2
  1965. @@:    jbra    sw
  1966.  
  1967. bswc:**************************************
  1968.     move.w    #1,swcoo
  1969.     jbsr    AtoI
  1970.     lea    CmdC_List_L1(pc),a0        *ノーマル用
  1971.     tst.w    d0
  1972.     jbeq    @f
  1973.     lea    CmdC_List_L2(pc),a0        *CR用
  1974.     cmpi.b    #$1,d0
  1975.     jbeq    @f
  1976.     lea    CmdC_List_L3(pc),a0        *compact用
  1977. @@:
  1978.     move.l      (a0),CmdC_List
  1979.     move.l      (a0),CmdC_ListD
  1980.     move.l     4(a0),CmdC_List+4
  1981.     move.l     4(a0),CmdC_ListD+4
  1982.     move.l     8(a0),CmdC_List+8
  1983.     move.l     8(a0),CmdC_ListD+8
  1984.     move.l    12(a0),CmdC_List+12
  1985.     move.l    12(a0),CmdC_ListD+12
  1986.      move.w    #1,eddip    *バックライト
  1987.     jbra    sw
  1988.  
  1989. mswc:**************************************
  1990.     move.b    (a2),d2
  1991.     jbeq    swcm
  1992.     cmpi.b    #' ',d2
  1993.     jbeq    swcm
  1994.     ori.b    #$20,d2    *小文字化!
  1995.     cmpi.b    #'u',d2
  1996.     jbne    エラー
  1997.     move.w    #-1,_CdcMode    *1:しようする
  1998.     move.w    #1,swcoo
  1999.     addq.l    #1,a2
  2000.     move.w    #-1,_CdcMode    *1:しようする
  2001.     move.w    #1,MuTmMod    *0:ノーマル 1:強引にキーベクタを書き替え
  2002.     move.w    #1,_KeySwi
  2003.     move.w    #1,eddip    *バックライト
  2004.     jbra    sw
  2005.  
  2006. tswc:**************************************
  2007.     move.w    #1,swcoo
  2008.     move.b    (a2),d0
  2009.     cmpi.b    #'0',d0
  2010.     jbne    @f
  2011.     addq.l    #1,a2
  2012.     moveq    #0,d0
  2013.     jbra    tswc_L1
  2014. @@:
  2015.     jbsr    AtoI
  2016.     tst.w    d0
  2017.     jbeq    trswc
  2018.     tst.w    d0
  2019.     jbeq    エラー
  2020. tswc_L1:
  2021.     move.w    d0,_KeyTDCT
  2022.      move.w    #1,eddip    *バックライト
  2023.     move.b    (a2),d0
  2024.     cmpi.b    #',',d0
  2025.     jbne    sw
  2026.     addq.l    #1,a2
  2027.     jbsr    AtoI
  2028.     tst.w    d0
  2029.     jbeq    エラー
  2030.     move.w    d0,_PlyWitT
  2031.      move.w    #1,eddip    *バックライト
  2032.     jbra    sw
  2033. trswc
  2034.     move.b    (a2),d0
  2035.     jbeq    エラー
  2036.     ori.b    #$20,d0    *小文字化!
  2037.     cmpi.b    #'r',d0
  2038.     jbne    エラー
  2039.  
  2040.     move.l    ST_CHK(pc),d0
  2041.     jbeq    @f
  2042.     Print    LRERSW(pc)
  2043.     jbra    PEE
  2044. @@:
  2045.     addq.l    #1,a2
  2046.     move.w    #1,swtr    * /trがある?
  2047.     jbra    sw
  2048.  
  2049. pswc:**************************************
  2050.     move.w    #1,swcoo
  2051.     move.b    (a2),d0
  2052.     jbeq    エラー
  2053.     ori.b    #$20,d0    *小文字化!
  2054.     cmpi.b    #'w',d0
  2055.     jbne    エラー
  2056.  
  2057.     move.l    ST_CHK(pc),d0
  2058.     jbeq    @f
  2059.     Print    LRERSW(pc)
  2060.     jbra    PEE
  2061. @@:
  2062.     addq.l    #1,a2
  2063.     move.w    #1,swpw    * /pwがある?
  2064.     jbra    sw
  2065.  
  2066. kswc:**************************************
  2067.     move.w    #1,swcoo
  2068.     jbsr    AtoI
  2069.     andi.w    #$1FF,d0
  2070.     jbne    @f
  2071.  
  2072.     move.b    (a2),d0
  2073.     jbeq    エラー
  2074.     ori.b    #$20,d0    *小文字化!
  2075.     cmpi.b    #'s',d0
  2076.     jbne    エラー
  2077.     addq.l    #1,a2
  2078.     clr.w    _KeySwi
  2079.      move.w    #1,eddip    *バックライト
  2080.     jbra    sw
  2081. @@:    move.l    d0,d2
  2082.     andi.l    #$1E0,d2
  2083.     lsl.l    #8,d2        *11
  2084.     lsl.l    #3,d2
  2085.     move.l    d2,_SFTK
  2086.     move.w    d0,d2
  2087.     andi.w    #$001F,d2
  2088.     ror.w    #3,d2
  2089.     or.l    d2,_SFTK
  2090.      move.w    #1,eddip    *バックライト
  2091.     jbra    sw
  2092.  
  2093. *    | 0 0 0 0 OPT.2 OPT.1 CTRL SHIFT |
  2094. *                |XF3 XF2 XF1 0 0 0 0 0| 0 0 0 0 0 0 XF5 XF4 
  2095.  
  2096. *     OPT.2  OPT.1 CTRL SHIFT XF5  XF4 XF3 XF2 XF1
  2097.  
  2098.  
  2099. aswc:**************************************
  2100.     jbsr    _CdcModeOn
  2101.     move.w    #1,swcoo
  2102.     move.w    #-1,_AutoMode    *0:ノーマル 1:オート
  2103.      move.w    #1,eddip    *バックライト
  2104.     jbra    sw
  2105. fswc:**************************************
  2106.     jbsr    _CdcModeOn
  2107.     move.w    #1,swcoo
  2108.     movem.l    d0-d7/a0-a6,-(sp)
  2109.  
  2110.      move.l    #1,-(sp)
  2111.      jbsr    _CdPlay_restart
  2112.      addq.l    #4,sp
  2113.  
  2114.     movem.l    d0-d7/a0-a6,-(sp)
  2115.      move.w    #1,eddip    *バックライト
  2116.     jbra    sw
  2117. xswc:**************************************
  2118.     move.w    #1,swcoo
  2119.     jbsr    AtoI
  2120.     cmpi.w    #128-(36+1+10)+1,d0
  2121.     jbcc    エラー
  2122.     move.l    d0,d7    *x
  2123.     move.b    (a2)+,d0
  2124.     jbeq    エラー
  2125.     cmpi.b    #',',d0
  2126.     jbne    エラー
  2127.     jbsr    AtoI
  2128.     cmpi.w    #63+1,d0
  2129.     jbcc    エラー
  2130.     mulu    #$800,d0
  2131.     add.l    d0,d7
  2132.     addi.l    #$E40000,d7
  2133.  
  2134.     movem.l    d0/d1/a2,-(sp)
  2135.  
  2136.     movea.l    ST_CHK(pc),a3
  2137.     move.l    a3,d0
  2138.     jbeq    xswcL
  2139.     move.l    d7,_DRAWADDS-SS(a3)
  2140.     jbsr    FnkBerChk
  2141.     jbeq    @f
  2142.     jbsr    KillLeds
  2143. @@:
  2144.  
  2145. xswcL:    movem.l    (sp)+,d0/d1/a2
  2146.  
  2147.     move.l    d7,_DRAWADDS
  2148.      move.w    #1,eddip    *バックライト
  2149.     jbra    sw
  2150.  
  2151.  
  2152. zswc:**************************************
  2153.     move.l    ST_CHK(pc),d0
  2154.     jbeq    @f
  2155.     Print    LRERSW(pc)
  2156.     jbra    PEE
  2157. @@:
  2158.     move.b    (a2),d0
  2159.     jbeq    zswc_L1
  2160.     cmpi.b    #' ',d0
  2161.     jbeq    zswc_L1
  2162.     move.b    1(a2),d7
  2163.     cmpi.b    #':',d7
  2164.     jbne    エラー
  2165.     ori.b    #$20,d0    *小文字化!
  2166.     subi.b    #'a',d0
  2167.     jbcs    エラー
  2168.     cmpi.b    #26,d0
  2169.     jbcc    エラー
  2170.     addq.l    #2,a2
  2171.     andi.l    #$00FF,d0
  2172.     addq.l    #1,d0
  2173.     jbra    zswc_L2
  2174. zswc_L1:
  2175.     moveq    #0,d0
  2176. zswc_L2:
  2177.     movem.l    d1-d2/a0-a2,-(sp)
  2178.     move.l    d0,-(sp)
  2179.     jbsr    _Chk_Cdd
  2180.     addq.l    #4,sp
  2181.     movem.l    (sp)+,d1-d2/a0-a2
  2182.     tst.l    d0
  2183.     jbne    PEE
  2184.      move.w    #1,eddip    *バックライト
  2185.     jbra    sw
  2186. oswc:**************************************
  2187.     move.w    #1,swcoo
  2188.     move.b    (a2)+,d0
  2189.     jbeq    エラー
  2190.     ori.b    #$20,d0    *小文字化!
  2191.     cmpi.b    #'n',d0
  2192.     jbeq    os_on
  2193.     cmpi.b    #'f',d0
  2194.     jbne    エラー
  2195. os_off:
  2196.     move.b    (a2),d0        *'f'の字をスキップ
  2197.     ori.b    #$20,d0    *小文字化!
  2198.     cmpi.b    #'f',d0
  2199.     jbne    @f
  2200.     addq.l    #1,a2
  2201. @@:
  2202.     movem.l    d1/a2,-(sp)
  2203.     move.l    ST_CHK(pc),d0
  2204.     jbeq    @f
  2205.     jbsr    FnkBerChk
  2206.     jbeq    @f
  2207.     jbsr    KillLeds
  2208. @@:
  2209.     clr.w    _CdcMode    *0:停止
  2210.     clr.w    _CDIN        *0:CDは入っていない 1:入っている
  2211.     clr.b    _CHARBUF    *LED文字
  2212.     movem.l    (sp)+,d1/a2
  2213.      move.w    #1,eddip    *バックライト
  2214.     jbra    sw
  2215.  
  2216. os_on:
  2217.     move.w    #-1,_CdcMode    *1:しようする
  2218.     move.w    #1,_CDIN        *0:CDは入っていない 1:入っている
  2219.     move.w    #1,_KeySwi
  2220.      move.w    #1,eddip    *バックライト
  2221.     jbra    sw
  2222. sswc:***************************************
  2223.     *CDのストップ   -s
  2224.     jbsr    _CdcModeOn
  2225.     move.w    #1,swcoo
  2226.     movem.l    d0-d7/a0-a6,-(sp)
  2227.     jbsr    _cd_play_pause
  2228.     move.w    #-1,_PauseMode    *0:特に 1:ポーズ中
  2229.     movem.l    d0-d7/a0-a6,-(sp)
  2230.      move.w    #1,eddip    *バックライト
  2231.     jbra    sw
  2232. cswc:**************************************
  2233.     *CDのリスタート -c
  2234.     jbsr    _CdcModeOn
  2235.     move.w    #1,swcoo
  2236.     movem.l    d0-d7/a0-a6,-(sp)
  2237.     jbsr    _cd_play_re
  2238.     clr.w    _PauseMode    *0:特に 1:ポーズ中
  2239.     movem.l    d0-d7/a0-a6,-(sp)
  2240.      move.w    #1,eddip    *バックライト
  2241.     jbra    sw
  2242. AllPlay:**************************************
  2243.     move.w    #1,swcoo
  2244.     move.b    (a2)+,d0
  2245.     ori.b    #$20,d0    *小文字化!
  2246.     cmpi.b    #'l',d0
  2247.     jbne    エラー
  2248.     move.b    (a2)+,d0
  2249.     ori.b    #$20,d0    *小文字化!
  2250.     cmpi.b    #'l',d0
  2251.     jbne    エラー
  2252.     move.b    (a2),d0
  2253.     jbeq    @f
  2254.     cmpi.b    #$20,d0
  2255.     jbeq    @f
  2256.     jbne    エラー
  2257. @@:
  2258.     movem.l    d1/a2/a3,-(sp)
  2259.     move.l    #-1,-(sp)
  2260.     move.l    #-1,-(sp)
  2261.     jbra    PlE
  2262.  
  2263. OwnPlay:**************************************
  2264.     move.w    #1,swcoo
  2265.     subq    #1,a2
  2266.     jbsr    AtoMSF
  2267.     tst.l    d0
  2268.     jbpl    Plcln
  2269.     jbsr    AtoI
  2270.     move.l    d0,d7
  2271.     jbeq    エラー
  2272.     move.b    (a2),d0
  2273.     jbeq    Pl1
  2274.     cmpi.b    #' ',d0
  2275.     jbeq    Pl1
  2276.     cmpi.b    #'-',d0
  2277.     jbeq    Plmi
  2278.     cmpi.b    #'/',d0
  2279.     jbeq    Plwaru
  2280.     jbra    エラー
  2281.  
  2282. Plwaru:        * t/m:s:f
  2283.     addq.l    #1,a2    * [/] skip
  2284.     move.l    d7,buf2
  2285.     move.l    a0,-(sp)
  2286.      add.w    d7,d7
  2287.      add.w    d7,d7
  2288.      lea    _ListStTm(pc),a0
  2289.      move.l    (a0,d7.w),buf3
  2290.     movea.l    (sp)+,a0
  2291.     jbsr    AtoMSF
  2292.     tst.l    d0
  2293.     jbmi    エラー
  2294.     movem.l    d1-d2/a0-a2,-(sp)
  2295.      move.l    buf3(pc),-(sp)
  2296.      move.l    d0,-(sp)
  2297.      bsr    _addtime
  2298.      addq.l    #8,sp
  2299.     movem.l    (sp)+,d1-d2/a0-a2
  2300.     *addi.l    #$01000000,d0
  2301.     move.l    d0,buf        *開始アドレス
  2302.  
  2303.     move.b    (a2),d0
  2304.     jbeq    Plwaru2
  2305.     cmpi.b    #' ',d0
  2306.     jbeq    Plwaru2
  2307.     cmpi.b    #'-',d0
  2308.     jbne    エラー
  2309.     addq.l    #1,a2    * [-] skip
  2310.     move.b    (a2),d0
  2311.     jbeq    Plwaru1
  2312.     cmpi.b    #' ',d0
  2313.     jbeq    Plwaru1
  2314.     jbsr    AtoMSF
  2315.     tst.l    d0
  2316.     jbmi    エラー
  2317.         * t/m:s:f - m:s:f
  2318.     movem.l    d1-d2/a0-a2,-(sp)
  2319.      move.l    buf3(pc),-(sp)
  2320.      move.l    d0,-(sp)
  2321.      bsr    _addtime
  2322.      addq.l    #8,sp
  2323.     movem.l    (sp)+,d1-d2/a0-a2
  2324.     *addi.l    #$01000000,d0
  2325.     movem.l    d1/a2/a3,-(sp)
  2326.     move.l    d0,-(sp)
  2327.     move.l    buf(pc),-(sp)
  2328.     jbra    PlE
  2329. Plwaru1:    * t/m:s:f -
  2330.     movem.l    d1/a2/a3,-(sp)
  2331.     move.l    #-1,-(sp)
  2332.     move.l    buf(pc),-(sp)
  2333.     jbra    PlE
  2334. Plwaru2:    * t/m:s:f 
  2335.     movem.l    d1/a2/a3,-(sp)
  2336.     move.l    buf2(pc),-(sp)
  2337.     move.l    buf(pc),-(sp)
  2338.     jbra    PlE
  2339.  
  2340.  
  2341. Plcln:        * m:s:f [-[ m:s:f ]]
  2342.     *addi.l    #$01000000,d0
  2343.     move.l    d0,buf
  2344.     move.b    (a2),d0
  2345.     jbeq    Plcln1
  2346.     cmpi.b    #' ',d0
  2347.     jbeq    Plcln1
  2348.     cmpi.b    #'-',d0
  2349.     jbne    エラー
  2350.     addq.l    #1,a2    * [-] skip
  2351.     jbsr    AtoMSF
  2352.     tst.l    d0
  2353.     jbpl    @f
  2354.     move.b    (a2),d0
  2355.     jbeq    Plcln1
  2356.     cmpi.b    #' ',d0
  2357.     jbeq    Plcln1
  2358.     jbra    エラー
  2359. @@:        * m:s:f - m:s:f
  2360.     *addi.l    #$01000000,d0
  2361.     movem.l    d1/a2/a3,-(sp)
  2362.     move.l    d0,-(sp)
  2363.     move.l    buf(pc),-(sp)
  2364.     jbra    PlE
  2365. Plcln1:        * m:s:f [-]
  2366.     movem.l    d1/a2/a3,-(sp)
  2367.     move.l    #-1,-(sp)
  2368.     move.l    buf(pc),-(sp)
  2369.     jbra    PlE
  2370.  
  2371. Pl1:        *--------- n
  2372.     movem.l    d1/a2/a3,-(sp)
  2373.     move.l    d7,-(sp)
  2374.     move.l    d7,-(sp)
  2375.     jbra    PlE
  2376. Plmi:        *---------- n-n
  2377.     addq.l    #1,a2    * [-] skip
  2378.     jbsr    AtoI2
  2379.     cmpi.l    #-1,d0
  2380.     jbeq    Pl2
  2381.     jbmi    エラー
  2382.     movem.l    d1/a2/a3,-(sp)
  2383.     move.l    d0,-(sp)
  2384.     move.l    d7,-(sp)
  2385.     jbra    PlE
  2386. Pl2:        *---------  n-
  2387.     movem.l    d1/a2/a3,-(sp)
  2388.     move.l    #-1,-(sp)
  2389.     move.l    d7,-(sp)
  2390.     *bra    PlE
  2391.  
  2392. PlE:
  2393.     jbsr    _cd_play
  2394.     addq.l    #8,sp
  2395.  
  2396.     movem.l    d0/d2/a0/a1,-(sp)
  2397.     jbsr    _MemChkT
  2398.     movem.l    (sp)+,d0/d2/a0/a1
  2399.  
  2400.     movem.l    (sp)+,d1/a2/a3
  2401.      clr.w    _PauseMode        *0:特に 1:ポーズ中
  2402.      move.w    #1,eddip    *バックライト
  2403.     jbra    sw
  2404.  
  2405. buf:    .dc.l    0
  2406. buf2:    .dc.l    0
  2407. buf3:    .dc.l    0
  2408.  
  2409. AtoMSF:    *-----------------
  2410.     * m:s:f
  2411.     move.l    a2,-(sp)
  2412.     jbsr    AtoI2    *m
  2413.     move.l    d0,d7
  2414.     jbmi    AtoMSF_E
  2415.     move.b    (a2),d0
  2416.     cmpi.b    #':',d0
  2417.     jbeq    @f
  2418.     cmpi.b    #'"',d0
  2419.     jbeq    @f
  2420.     cmpi.b    #$2C,d0        * [']
  2421.     jbne    AtoMSF_E
  2422. @@:    addq.l    #1,a2    * [:] skip
  2423.     swap    d7
  2424.     jbsr    AtoI2    *s
  2425.     tst.l    d0
  2426.     jbmi    AtoMSF_E
  2427.     lsl.l    #8,d0
  2428.     or.l    d0,d7
  2429.     move.b    (a2),d0
  2430.     cmpi.b    #':',d0
  2431.     jbeq    @f
  2432.     cmpi.b    #'"',d0
  2433.     jbeq    @f
  2434.     cmpi.b    #$2C,d0        * [']
  2435.     jbne    AtoMSF_E
  2436. @@:    addq.l    #1,a2    * [:] skip
  2437.     jbsr    AtoI2    *f
  2438.     tst.l    d0
  2439.     jbmi    AtoMSF_E
  2440.     or.l    d7,d0
  2441.     addq.l    #4,sp
  2442.     rts
  2443. AtoMSF_E:
  2444.     movea.l    (sp)+,a2
  2445.     moveq    #-1,d0
  2446.     rts
  2447.  
  2448. help:**************************************
  2449.     *ヘルプ表示
  2450.     pea    LRH(pc)
  2451.     clr.w    eddip    *常駐エリアにデータを戻すか
  2452.     jbra    PE    *end
  2453.  
  2454. dswc:**************************************
  2455.     *CDのリスト  -d
  2456.     move.b    swcom+1(pc),d1
  2457.     jbeq    dswc_chks
  2458.     cmpi.b    #' ',d1
  2459.     jbeq    dswc_chks
  2460.     cmpi.b    #'2',d1
  2461.     jbeq    dswc_chks
  2462.     ori.b    #$20,d1    *小文字化!
  2463.     cmpi.b    #'b',d1
  2464.     jbne    エラー
  2465.         ************デバグモード
  2466.      clr.w    eddip    *バックライト
  2467.     move.l    ST_CHK(pc),d0
  2468.     jbne    @f
  2469.     pea    LR8(pc)        **非常駐エラー
  2470.     jbra    PE
  2471. @@:
  2472.     movea.l    SPP,a1
  2473.     SUPER
  2474.     jbsr    _debug_mode
  2475.     jbra    PEE
  2476.  
  2477. dswc_chks:    ************
  2478.     jbsr    _CdListRead    *チェック
  2479.     tst.l    _CdListS    *CDLISTにあるなら 1 
  2480.     jbeq    @f
  2481.     Print    LRNOFL(pc)
  2482.     jbra    PEE
  2483.  
  2484. @@:    ** 環境変数 CDCLIST チェック **
  2485.     pea    CDCLIST_FILENAME(pc)
  2486.     clr.l    -(sp)
  2487.     pea    CDCLIST_NAME(pc)
  2488.     DOS    _GETENV
  2489.     lea    12(sp),sp
  2490.     tst.l    d0
  2491.     jbmi    dswc_ERR1
  2492.  
  2493.     move.w    #1,-(sp)
  2494.     pea    CDCLIST_FILENAME(pc)
  2495.     DOS    _OPEN
  2496.     addq.l    #6,sp
  2497.     move.w    d0,Hendl
  2498.     tst.l    d0
  2499.     jbmi    dswc_NEW
  2500.  
  2501.     move.w    #2,-(sp)
  2502.     move.l    #-1,-(sp)
  2503.     move.w    Hendl(pc),-(sp)
  2504.     DOS    _SEEK
  2505.     addq.l    #8,sp
  2506.     jbra    CD_LW
  2507.  
  2508. dswc_NEW:
  2509.     move.w    #%0100000,-(sp)
  2510.     pea    CDCLIST_FILENAME(pc)
  2511.     DOS    _CREATE
  2512.     addq.l    #6,sp
  2513.     move.w    d0,Hendl
  2514.     tst.l    d0
  2515.     jbmi    dswc_ERR2    *エラー
  2516. CD_LW:
  2517.     movea.l    ST_CHK(pc),a3
  2518.     move.l    a3,d0
  2519.     jbeq    @f
  2520.     move.w    _CdcMode-SS(a3),B_CdcMode
  2521.     move.w    _KeySwi-SS(a3),B_KeySwi
  2522.     clr.w    _CdcMode-SS(a3)
  2523.     clr.w    _KeySwi-SS(a3)
  2524. @@:
  2525.      moveq    #0,d0
  2526.      move.b    swcom+1(pc),d1
  2527.      cmpi.b    #'2',d1
  2528.      bne    @f
  2529.      moveq    #1,d0
  2530. @@:     move.l    d0,-(sp)
  2531.      moveq    #0,d0
  2532.      move.w    Hendl(pc),d0
  2533.      move.l    d0,-(sp)
  2534.      bsr    _cd_play_entry
  2535.      addq.l    #8,sp
  2536.      move.w    Hendl(pc),-(sp)
  2537.      DOS    _CLOSE
  2538.      addq.l    #2,sp
  2539.     movea.l    ST_CHK(pc),a3
  2540.     move.l    a3,d0
  2541.     jbeq    @f
  2542.     move.w    B_CdcMode(pc),_CdcMode-SS(a3)    *戻す
  2543.     move.w    B_KeySwi(pc),_KeySwi-SS(a3)
  2544. @@:    jbra    PEE
  2545.  
  2546. dswc_ERR1:
  2547.     clr.b    CDCLIST_FILENAME    *リストファイル無し
  2548.     Print    LRLIEV(pc)
  2549.     jbra    PEE
  2550. dswc_ERR2:
  2551.     clr.b    CDCLIST_FILENAME    *リストファイル無し
  2552.     Print    LRLIER(pc)
  2553.     jbra    PEE
  2554.  
  2555. B_CdcMode: .dc.w 0
  2556. B_KeySwi:  .dc.w 0
  2557.  
  2558.  
  2559. lswc:**************************************
  2560.     *CDのリスト  -l
  2561.     move.b    swcom+1(pc),d1
  2562.     jbeq    @f
  2563.     cmpi.b    #'0',d1
  2564.     jbeq    @f
  2565.     cmpi.b    #'1',d1
  2566.     jbeq    lswc_L1
  2567.     cmpi.b    #'2',d1
  2568.     jbeq    lswc_L2
  2569.     cmpi.b    #' ',d1
  2570.     jbne    エラー
  2571. @@:
  2572.     jbsr    _CdListRead    *チェック
  2573.     move.l    #0,-(sp)
  2574.     jbra    lswc_NOMEE
  2575. lswc_L1:
  2576.     jbsr    _CdListRead    *チェック
  2577.     move.l    #1,-(sp)
  2578.     jbra    lswc_NOMEE
  2579. lswc_L2:
  2580.     jbsr    _CdListRead    *チェック
  2581.     move.l    #2,-(sp)
  2582. lswc_NOMEE:
  2583.     jbsr    _cd_play_list
  2584.     addq.l    #4,sp
  2585.     jbra    PEE
  2586.  
  2587. m2swc:**************************************
  2588.     *CDのリスト  -m
  2589.     jbsr    _cd_mem_list
  2590.     jbra    PEE
  2591. keep:    ************************** 常駐させる
  2592.     movem.l    d0-d7/a0-a6,-(sp)
  2593.     jbsr    _CDROM_chk
  2594.     tst.l    d0
  2595.     jbeq    keepL4
  2596.     cmpi.l    #-3,d0
  2597.     jbne    keepLL
  2598.         **CD-ROMじゃ無い
  2599.     movem.l    (sp)+,d0-d7/a0-a6
  2600.     pea    LRNOID(pc)
  2601.      clr.w    eddip    *常駐エリアにデータを戻すか
  2602.     jbra    PE    *end
  2603.  
  2604. keepL4:
  2605.     Print    LRLTRD(pc)
  2606.     jbsr    _CdListRead_C
  2607.     jbpl    @f
  2608.     cmpi.l    #-100,d0
  2609.     jbne    keepLL
  2610.     Print    LRNOCD(pc)
  2611.     jbra    keepLL
  2612.  
  2613. @@:    Print    _CdName(pc)
  2614.     Print    LRLTOK(pc)
  2615. keepLL:    movem.l    (sp)+,d0-d7/a0-a6
  2616.  
  2617.     tst.w    _ExTrak        * 1;拡張トラックあり
  2618.     jbeq    @f
  2619.     Print    LREXTK(pc)
  2620. @@:
  2621.     tst.w    _CddevSw    * 1;計測ドライバー使用
  2622.     jbeq    @f
  2623.     Print    LRCDDS(pc)
  2624. @@:
  2625.     movea.l    ST_CHK(pc),a3
  2626.     move.l    a3,d0
  2627.     jbeq    keepL1
  2628.         *既に常駐、設定変更
  2629.     clr.w    IocsSwc        *白帯で1になったまま終わってしまうともう動かないので初期化
  2630.      move.w    #1,eddip    *バックライト
  2631.     pea    LR5(pc)
  2632.     jbra    PE    *end
  2633. keepL1:    **セット
  2634.         **TRAP 5 チェック**
  2635.     tst.w    swtr    *sw trがある?
  2636.     jbne    @f
  2637.      movea.l TRP5_,a0
  2638.     cmpa.l    #$00F00000,a0
  2639.     jbcc    @f
  2640.     pea    LRTP5(pc)
  2641.     jbra    PE    *end
  2642. @@:
  2643.  
  2644.  .if 0
  2645.  
  2646.     clr.w    _TrkNo
  2647.     pea    _plyinf(pc)
  2648.     jbsr    _ChkPly
  2649.     addq.l    #4,sp
  2650.     tst.l    d0
  2651.     jbne    keepL3
  2652.     jbsr    _ChkPlyDisp
  2653.  
  2654.     move.l    _plyinf(pc),d0
  2655.     cmpi.b    #$11,d0
  2656.     jbeq    keepL2
  2657.     cmpi.b    #$12,d0
  2658.     jbeq    keepL2
  2659.     clr.w    _TrkNo
  2660.     jbra    keepL3
  2661. keepL2:
  2662.     move.l    _plyinf+4(pc),d0
  2663.     move.w    d0,_TrkNo
  2664.     move.w    d0,_TrkNoS
  2665.     jbsr    _MemChkT
  2666.     jbsr    _SetTrkLong
  2667. keepL3:
  2668.  
  2669.  .else
  2670.  
  2671.     movem.l    d0-d2/a0-a2,-(sp)
  2672.      jbsr    _ZeroUnit
  2673.     movem.l    (sp)+,d0-d2/a0-a2
  2674.  
  2675.  .endif
  2676.  
  2677.     move.w    #SF,_STFLAG    *常駐チェック用
  2678.     tst.w    swtr    *sw trがある?
  2679.     jbne    @f
  2680.     ori.w    #SFT5,_STFLAG    *常駐チェック用   SFT5;trap5未使用
  2681.     move.l    TRP5_,TRP5_JMP+2
  2682.      move.l    #TRP5,TRP5_
  2683. @@:
  2684.     tst.w    swpw    *sw pwがある?
  2685.     jbeq    @f
  2686.     ori.w    #SFPW,_STFLAG    *常駐チェック用   PWSW;リセット時CD停止
  2687.     move.l    PWSW_,PWSW_JMP+2
  2688.      move.l    #PWSW,PWSW_
  2689. @@:
  2690.     move.l    B_KEYSNS_,B_KEYSNS_JMP+2
  2691.      move.l    #B_KEYSNS,B_KEYSNS_
  2692.     move.l    BITSNS_,BITSNS_JMP+2
  2693.      move.l    #BITSNS,BITSNS_
  2694.     move.l    MFP_,MFP_JMP+2
  2695.      move.l    #MFP,MFP_
  2696.  
  2697.     pea    INTVCS
  2698.     move.w    #INTVCS_,-(sp)
  2699.     DOS    _INTVCS
  2700.     addq.l    #6,sp
  2701.     move.l    d0,INTVCS_JMP+2
  2702.  
  2703.     pea    INTVCG
  2704.     move.w    #INTVCG_,-(sp)
  2705.     DOS    _INTVCS
  2706.     addq.l    #6,sp
  2707.     move.l    d0,INTVCG_JMP+2
  2708.  
  2709.     jbsr    _WaitCC    *今の1/100s
  2710.     *add.w    _PlyWitT(pc),_KeyTD    *すぐに実行されるように
  2711.     jbsr    _ChkCdRom
  2712.     tst.w    _CdcMode    *0:停止中 1:運転中
  2713.     jbeq    @f
  2714.     jbsr    _B_KLE_D
  2715. @@:
  2716.     Print    LRKP(pc)
  2717.     clr.w    -(sp)
  2718.     lea.l    EndStatio(pc),a0
  2719.     suba.l    #StartStatio,a0
  2720.     move.l    a0,-(sp)
  2721.     *move.l    #EndStatio-StartStatio,-(sp)
  2722.     DOS    _KEEPPR
  2723.  
  2724. free:    *****************************常駐解除
  2725.     movea.l    ST_CHK(pc),a3
  2726.     move.l    a3,d0
  2727.     jbne    @f
  2728.     pea    LR8(pc)        **非常駐
  2729.      clr.w    eddip    *常駐エリアにデータを戻すか
  2730.     jbra    PE    *end
  2731.  
  2732. @@:
  2733.     move.l    VC_CHK(pc),d1
  2734.     cmp.w    _STFLAG(pc),d1
  2735.     jbeq    @f
  2736.     pea    LR4(pc)        **ベクタが占領
  2737.      clr.w    eddip    *常駐エリアにデータを戻すか
  2738.     jbra    PE    *end
  2739.  
  2740. @@:
  2741.     move.w    _STFLAG(pc),d0    *常駐チェック用
  2742.     andi.w    #SFT5,d0
  2743.     jbeq    @f
  2744.     move.l    (TRP5_JMP-SS)+2(a3),TRP5_
  2745. @@:
  2746.     move.w    _STFLAG(pc),d0    *常駐チェック用
  2747.     andi.w    #SFPW,d0
  2748.     jbeq    @f
  2749.     move.l    (PWSW_JMP-SS)+2(a3),PWSW_
  2750. @@:
  2751.     move.l    (B_KEYSNS_JMP-SS)+2(a3),B_KEYSNS_
  2752.     move.l    (BITSNS_JMP-SS)+2(a3),BITSNS_
  2753.     move.l    (MFP_JMP-SS)+2(a3),MFP_
  2754.  
  2755.     move.l    (INTVCS_JMP-SS)+2(a3),-(sp)
  2756.     move.w    #INTVCS_,-(sp)
  2757.     DOS    _INTVCS
  2758.     addq.l    #6,sp
  2759.  
  2760.     move.l    (INTVCG_JMP-SS)+2(a3),-(sp)
  2761.     move.w    #INTVCG_,-(sp)
  2762.     DOS    _INTVCS
  2763.     addq.l    #6,sp
  2764.  
  2765.     jbsr    FnkBerChk
  2766.     jbeq    @f
  2767.     jbsr    KillLeds
  2768. @@:
  2769.     sub.l    #$00000F0,a3
  2770.     move.l    a3,-(sp)
  2771.     DOS    _MFREE
  2772.     addq.l    #4,sp
  2773.     suba.l    a3,a3
  2774.  
  2775.     pea    LR3(pc)
  2776. PE:    DOS    _PRINT
  2777.     addq.l    #4,sp
  2778.  
  2779. PEE:
  2780.     tst.w    eddip    *バックライト
  2781.     jbeq    @f
  2782.     jbsr    HenSuSet
  2783. @@:
  2784.     DOS    _EXIT
  2785.  
  2786. _CdListRead_C:*************コマンドライン用
  2787.     jbsr    _CdListRead
  2788.     jbpl    HenSuSet
  2789.     rts
  2790.  
  2791. HenSuSet:** 常駐していたらそのデータ流し込む1**
  2792.     move.l    ST_CHK(pc),d0
  2793.     jbne    @f
  2794.     rts
  2795. @@:
  2796.     movem.l    d0-d2/a0-a3,-(sp)
  2797.     jbsr    _ChkCdRom
  2798.     tst.w    _CdcMode    *0:停止中 1:運転中
  2799.     jbeq    @f
  2800.     jbsr    _B_KLE_D
  2801. @@:
  2802.     movea.l    ST_CHK(pc),a3
  2803.     lea    __COM__(pc),a0
  2804.     lea    __COM__-SS(a3),a1
  2805.     move.w    #(__COM__S-__COM__)/2-1,d0
  2806. @@:    move.w    (a0)+,(a1)+
  2807.     dbra    d0,@b
  2808.     movem.l    (sp)+,d0-d2/a0-a3
  2809.     rts
  2810.  
  2811. CmdC_List_L1:        *ノーマル用
  2812.     defccl
  2813. CmdC_List_L2:        *CR対応用
  2814.     .dc.b    %0000_0010 **│  6&  │  5%  │  4$  │  3#  │  2"  │  1!  │  ESC │未定義
  2815.     .dc.b    %1000_0000 **│  BS  │  \|  │  ^~  │  -=  │  0   │  9)  │  8(  │  7'  
  2816.     .dc.b    %0001_1001 **│  U  │  Y  │  T  │  R  │  E  │  W  │  Q  │  TAB 
  2817.     .dc.b    %0011_0000 **│  S  │  A  │ [CR] │  [   │  @`  │  P  │  O  │  I  
  2818.     .dc.b    %0000_0000 **│  ;+  │  L  │  K  │  J  │  H  │  G  │  F  │  D  
  2819.     .dc.b    %0000_0010 **│  N  │  B  │  V  │  C  │  X  │  Z  │   ]  │  :*  
  2820.     .dc.b    %1100_0000 **│  DEL │ HOME │ [SP] │   _  │  /?  │  .>  │  ,<  │  M  
  2821.     .dc.b    %1111_1111 **│  CLR │  ↓  │  →  │  ↑  │  ←  │ UNDO │Rolldn│Rollup
  2822.     .dc.b    %1111_1111 **│  4  │  +  │  9  │  8  │  7  │  -  │  *  │  /  
  2823.     .dc.b    %1111_1111 **│  0  │ ENTER│  3  │  2  │  1  │  =  │  6  │  5  
  2824.     .dc.b    %0000_1011 **│  XF3 │  XF2 │  XF1 │ HELP │ 登録 │ 記号 │  .  │  ,  
  2825.     .dc.b    %0000_0000 **│ ヒカナ │  INS │ CAPS │コード│ ローマ字│ かな │  XF5 │  XF4 
  2826.     .dc.b    %0000_0000 **│ F5 │ F4 │ F3 │ F2 │ F1 │ COPY │ BREAK│ 全角 
  2827.     .dc.b    %0000_0000 **│未定義│未定義│未定義│ F10 │ F9 │ F8 │ F7 │ F6 
  2828.     .dc.b    %0000_0000 **│未定義│未定義│未定義│未定義│ OPT.2│ OPT.1│ CTRL │ SHIFT
  2829.     .dc.b    %0000_0000 **│未定義│未定義│未定義│未定義│未定義│未定義│未定義│未定義
  2830. CmdC_List_L3:        *compact用
  2831.     .dc.b    %0000_0010 **│  6&  │  5%  │  4$  │  3#  │  2"  │  1!  │  ESC │未定義
  2832.     .dc.b    %1001_1111 **│  BS  │  \|  │  ^~  │  -=  │  0   │  9)  │  8(  │  7'  
  2833.     .dc.b    %1001_1001 **│  U  │  Y  │  T  │  R  │  E  │  W  │  Q  │  TAB 
  2834.     .dc.b    %0011_0111 **│  S  │  A  │ [CR] │  [   │  @`  │  P  │  O  │  I  
  2835.     .dc.b    %1111_0000 **│  ;+  │  L  │  K  │  J  │  H  │  G  │  F  │  D  
  2836.     .dc.b    %0000_0010 **│  N  │  B  │  V  │  C  │  X  │  Z  │   ]  │  :*  
  2837.     .dc.b    %1101_1111 **│  DEL │ HOME │ [SP] │   _  │  /?  │  .>  │  ,<  │  M  
  2838.     .dc.b    %1111_1111 **│  CLR │  ↓  │  →  │  ↑  │  ←  │ UNDO │Rolldn│Rollup
  2839.     .dc.b    %1111_1111 **│  4  │  +  │  9  │  8  │  7  │  -  │  *  │  /  
  2840.     .dc.b    %1111_1111 **│  0  │ ENTER│  3  │  2  │  1  │  =  │  6  │  5  
  2841.     .dc.b    %0000_1011 **│  XF3 │  XF2 │  XF1 │ HELP │ 登録 │ 記号 │  .  │  ,  
  2842.     .dc.b    %0000_0000 **│ ヒカナ │  INS │ CAPS │コード│ ローマ字│ かな │  XF5 │  XF4 
  2843.     .dc.b    %0000_0000 **│ F5 │ F4 │ F3 │ F2 │ F1 │ COPY │ BREAK│ 全角 
  2844.     .dc.b    %0000_0000 **│未定義│未定義│未定義│ F10 │ F9 │ F8 │ F7 │ F6 
  2845.     .dc.b    %0000_0000 **│未定義│未定義│未定義│未定義│ OPT.2│ OPT.1│ CTRL │ SHIFT
  2846.     .dc.b    %0000_0000 **│未定義│未定義│未定義│未定義│未定義│未定義│未定義│未定義
  2847.  
  2848. ST_CHK:
  2849.     .dc.l    0
  2850. VC_CHK:
  2851.     .dc.l    0
  2852. GETBUF:
  2853.     .ds.b    256
  2854.     .even
  2855. CDROM_NAME:
  2856.     .dc.b    'CDROM',0
  2857.     .even
  2858. CDCSW_NAME:
  2859.     .dc.b    'CDCSW',0
  2860.     .even
  2861.  
  2862. LRKP:    .dc.b    ' 常駐しました。          ',$0d,$0a,0
  2863. LRTP5:    .dc.b    ' TRAP #5が使用されているようです。常駐しません。',$0d,$0a,0
  2864. LR3:    dc.b    ' 常駐解除しました。      ',$0d,$0a,0
  2865. LR4:    .dc.b    ' ベクタが占領されています。',$0d,$0a,0
  2866. LR5:    .dc.b    ' 設定を変更しました。    ',$0d,$0a,0
  2867. LR6:    .dc.b    ' コマンドラインが異常です。',$0d,$0a,0
  2868. LR7:    .dc.b    ' スイッチが異常です。    ',$0d,$0a,0
  2869. LR8:    .dc.b    ' 常駐していません。      ',$0d,$0a,0
  2870. LRLTRD:    .dc.b    ' タイトルリストファイルとCDのチェック中です。',$0d,$0a,0
  2871. LRLTOK:    .dc.b    ' タイトルリストファイルにありました。',$0d,$0a,0
  2872. LRLTBD:    .dc.b    ' タイトルリストファイルにはありません。',$0d,$0a,0
  2873. LREXTK:    .dc.b    ' 拡張トラックを使用しています。',$0d,$0a,0
  2874. LRCDDS:    .dc.b    ' 計測技研CD-ROM DRIVER IOCTRL CALLを使用します。',$0d,$0a,0
  2875. LRNOID:    .dc.b    ' 環境変数 CDROM のIDの装置は、CD-ROM ではないようです。',$0d,$0a
  2876.     .dc.b    ' 常駐しません。',$0d,$0a,0
  2877. LRERSW:    .dc.b    ' /Z,/TR,/PW は常駐時のみ有効なコマンドです。',$0d,$0a,0
  2878. LRNOCD:    .dc.b    ' CDが準備されていません。',$0d,$0a,0
  2879. LRLIEV:    .dc.b    ' 環境変数 CDCLIST が定義されていません。',$0d,$0a,0
  2880. LRLIER:    .dc.b    ' 環境変数 CDCLIST の内容が異常です。',$0d,$0a,0
  2881. LRNOFL:    .dc.b    ' このCDは既に登録されています。',$0d,$0a,0
  2882. LRSCRM:    .dc.b    ' SCSI ROMがありません??',$0d,$0a,0
  2883.  
  2884. LRH:
  2885.     .dc.b    $0d,$0a
  2886.     .dc.b    '使用法:CDC.x [switch]|[曲番号(時間)[-[曲番号(時間)]]]|[ALL]',$0d,$0a
  2887.     .dc.b    ' 曲番号    : 演奏するCDの曲番号を指定する。',$0d,$0a
  2888.     .dc.b    ' u:v:w-    : u分v秒w~最後まで演奏します。',$0d,$0a
  2889.     .dc.b    ' u:v:w-x:y:z    : u分v秒w~x分y秒zまで演奏します。',$0d,$0a
  2890.     .dc.b    ' ?/u:v:x-    : ? 曲目のu分v秒w~最後まで演奏します。',$0d,$0a
  2891.     .dc.b    ' ?/u:v:w-x:y:z    : ? 曲目のu分v秒w~x分y秒zまで演奏します。',$0d,$0a
  2892.     .dc.b    ' ALL        : 全曲演奏する。',$0d,$0a
  2893.     .dc.b    ' switch    :',$0d,$0a
  2894.     .dc.b    '    無し ・・ 現在のCD-ROMの状態を表示します。',$0d,$0a
  2895.     .dc.b    '    /I ・・・・ 常駐します。',$0d,$0a
  2896.     .dc.b    '    /R ・・・・ 常駐解除します。',$0d,$0a
  2897.     .dc.b    '    /L ・・・・ CD-ROMの演奏時間を一覧します。',$0d,$0a
  2898.     .dc.b    '    /L2 ・・・ CD-ROMの演奏時間を一覧します(拡張曲名,中間曲名対応)。',$0d,$0a
  2899.     *.dc.b    '    /D0 ・・・ CD-ROMとタイトルリストファイルのチェックをします。',$0d,$0a
  2900.     .dc.b    '    /D ・・・・ CD-ROMをタイトルリストファイルに追加します。',$0d,$0a
  2901.     .dc.b    '    /D2 ・・・ CD-ROMをタイトルリストファイルに追加します(index対応)。',$0d,$0a
  2902.     .dc.b    '    /M ・・・・ 現在のプログラム状態表示します。',$0d,$0a
  2903.     *.dc.b    '    /Z ・・・・ 計測CDDEV.SYSのIOCTRLを使用します(常駐時のみ有効)。',$0d,$0a
  2904.     *.dc.b    '    /TR ・・・ trap5を使用しない(常駐時のみ有効)。',$0d,$0a
  2905.     .dc.b    '    /PW ・・・ 電源off時 CDを止める様にする(常駐時のみ有効)。',$0d,$0a
  2906.     .dc.b    $0d,$0a
  2907.     .dc.b    '    /S,/C ・ 演奏を一時停止,再開します。',$0d,$0a
  2908.     *.dc.b    '    /F ・・・・ 演奏中、次の曲へスキップさせます。',$0d,$0a
  2909.     .dc.b    '    /A ・・・・ オートモードにします。',$0d,$0a
  2910.     .dc.b    '    /OFF ・・ CDC.xの機能を停止します。',$0d,$0a
  2911.     *.dc.b    '    /ON ・・・ CDC.xの機能を再開します。キー入力禁止も解除します。',$0d,$0a
  2912.     *.dc.b    '    /KS ・・・ CDC.xのキー操作を使えないようにする(解除は-ON))',$0d,$0a
  2913.     .dc.b    '    /T[m] ・ CDC.xの割り込みタイミングを 1/100s単位で設定します(def.m=100)',$0d,$0a
  2914.     .dc.b    '    /X[x],[y]・ CDC.xのLED部の表示位置を設定します(def.x=51,y=29)',$0d,$0a
  2915.     .dc.b    '    /K[n] ・ CDC.x機能のシフトキー設定(def.8 = [XF4])。[XF1]=1 : [XF1]=2 : [XF3]=4',$0d,$0a
  2916.     .dc.b    '          [XF4]=8 : [XF5]=16 : [SHIFT]=32 : [CTRL]=64 : [OPT1]=128 : [OPT2]=256',$0d,$0a
  2917.     .dc.b    '    /B[n]・・ n=2で compactキーボードモードにする。(def. n=0)',$0d,$0a
  2918.     *.dc.b    '    /MU ・・・ MUTERMモード。強引にキーベクタをCDC.xにものにする。',$0d,$0a
  2919.     .dc.b    '    /DB ・・・ デバッグモード。CD-DA チェッカー。',$0d,$0a
  2920.     .dc.b    '    /E ・・・・ 環境変数 CDCSW を参照します(以下のスイッチは無視されます)',$0d,$0a
  2921.     .even
  2922. CR:    .dc.b    $0d,$0a,0
  2923.     .even
  2924. LR1:    .dc.b    'X68k AUDIO-',$1B,'[37mCD C',$1B,'[mONTROLER Version 1.00 Copyright 1994 1995 TNB製作所',$0d,$0a
  2925.     *.dc.b    '                    Orig."CD2PCM.x" by WATA',$0d,$0a
  2926.     .dc.b    0
  2927.     .even
  2928.  
  2929.